【发布时间】:2018-10-29 17:40:31
【问题描述】:
我正在使用带有完整框架的 Aspnet 核心 (2.1)(4.7,我们有一些我们想要使用的 WCF WS-* 服务),每当我使用 publish 时,生成的 web.config 都不起作用。启动网站(在我的 Windows 7 机器上使用 IIS 7.5)并尝试从网络浏览器访问它,我收到经典的 502.5 错误,如果我查看我的事件查看器,我会发现与此类似的错误:
Application 'MACHINE/WEBROOT/APPHOST/MYWEBSITE' with physical root 'C:\inetpub\MyWebSite\' failed to start process with commandline '.\MyWebSite ', ErrorCode = '0x80070002 : 0.
由于我知道 8007002 确实是文件未找到错误,我决定查看生成的 web.config,我可以看到 aspNetCore 行看起来像这样:
<aspNetCore processPath=".\MyWebSite" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
将扩展名 (.exe) 添加到 MyWebSite 以使其与文件匹配,从而解决了该问题。 修复它对我来说并不难,但我想自动化部署,并且我想避免不得不做一些可以修复这个文件的东西。
我做错了什么还是有办法强制扩展?
【问题讨论】:
-
将打补丁的
web.config复制到你的项目本身,然后发布过程将使用你正确的版本,而不是生成一个损坏的版本。看到这样的错误并不奇怪,因为 VS 的人可能不是 IIS 专家。 -
很奇怪,如果我这样做,我配置的所有值都会保留,但 processPath 会被覆盖...例如,如果我将其包含在我的项目的 web.config 中:
我得到以下输出: stdoutLogEnabled 和 stdoutLogFile 都保留,但没有 processPath。 -
我想我会向 net core 团队提出一个问题,看看情况如何......
标签: .net asp.net-core dotnet-publish