IIS CLI为我的项目生成带有site的applicationhost.config

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS CLI为我的项目生成带有site的applicationhost.config相关的知识,希望对你有一定的参考价值。

我有一个包含多个项目的C#解决方案,其中一个是由IIS运行的Web服务器。我在该项目的csproj文件中设置了<UseGlobalApplicationHostFile>True</UseGlobalApplicationHostFile>

当我打开Visual Studio时,它会在〜/ Documents / IISExpress / config / applicationhost.config中生成:

    <sites>
        <site name="WebSite1" id="1" serverAutoStart="true">
            <application path="/">
                <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%WebSite1" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation=":8080:localhost" />
            </bindings>
        </site>
        <site name="SealingService" id="2">
            <application path="/" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="C:UserssehchDocumentsParagonParagonCoreserversSealingServiceSealingService" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:61800:localhost" />
                <binding protocol="https" bindingInformation="*:44300:localhost" />
            </bindings>
        </site>
        <siteDefaults>
            <logFile logFormat="W3C" directory="%IIS_USER_HOME%Logs" />
            <traceFailedRequestsLogging directory="%IIS_USER_HOME%TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
        </siteDefaults>
        <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
        <virtualDirectoryDefaults allowSubDirConfig="true" />
    </sites>

我希望能够从命令行使用IIS Express运行我的项目(用于构建服务器集成测试目的)。如何从命令行生成applicationhost.config的SealingService站点部分(无需打开Visual Studio)?

我试过跑步

"C:Program Files (x86)IIS Expressiisexpress.exe"

在我的解决方案文件夹中,但它只生成WebSite1部分。

答案

如果我理解正确,您要做的是将您指定的部分添加到〜/ Documents / IISExpress / config / applicationhost.config文件中。

您可以使用AppCmd.exe命令行工具执行此操作:

"C:Program FilesIIS Expressappcmd.exe" add site /name:SealingService /bindings:"http/*:61800:localhost" /physicalPath:"C:UserssehchDocumentsParagonParagonCoreserversSealingServiceSealingService"
"C:Program FilesIIS Expressappcmd.exe" set site /site.name:SealingService /[path='/'].applicationPool:Clr4IntegratedAppPool
"C:Program FilesIIS Expressappcmd.exe" set site /site.name:SealingService /+bindings.[protocol='https',bindingInformation='*:44300:localhost']

使用第一个命令创建站点,设置其http绑定及其物理路径;使用第二个,我们将其应用程序池设置为所需的应用程序池;第三个我们添加https绑定。

如果您使用x86版本的IIS Express,则可以在C: Program Files(x86) IIS Express appcmd.exe中找到AppCmd

以上是关于IIS CLI为我的项目生成带有site的applicationhost.config的主要内容,如果未能解决你的问题,请参考以下文章

apple-app-site-association 无法处理带有 # 字符的链接

带有 Axios 的 Django CSRF 令牌

在iis上反向代理隐藏部分URI

Firebase 更新 apple-app-site-association

带有 Apple Watch 扩展的条纹

Vue CLI 生成带有错误的空正文:找不到元素:迁移 vuecli 2>3 后的#app