我有一个C#解决方案,有几个项目,其中一个是IIS运行的Web服务器。我在该项目的csproj文件中设置了<UseGlobalApplicationHostFile>True</UseGlobalApplicationHostFile>
。IIS CLI为我的项目生成applicationhost.config和网站
当我打开Visual Studio中,它会产生这样在〜/文档/ IISExpress /配置/对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:\Users\sehch\Documents\Paragon\ParagonCore\servers\SealingService\SealingService" />
</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快递从命令行运行我的项目(用于构建服务器集成测试目的)。如何从命令行(不打开Visual Studio)生成applicationhost.config的SealingService
网站部分?
我已经尝试运行
"C:\Program Files (x86)\IIS Express\iisexpress.exe"
在我的解决方案文件夹
,但它只能产生WebSite1
部分。
我认为这是严格意义上的VS功能。你为什么要“生成”?你总是可以在你的仓库和CI机器上放置一个'applicationHost.config'副本,从命令行运行IIS Express来读取该配置文件。 –
@LexLi我可以这样做,但是如何为本地和CI机器设置不同的'physicalPath'?我们希望能够根据需要在本地运行测试,理想情况下不需要更改配置文件。 –
在路径中留下一个环境变量,然后将其设置到CI序列中的确切文件夹中,我认为它应该起作用。 –