首页 > 解决方案 > Aspnet Core Self-Contained deploy 的 web.config 缺少文件扩展名

问题描述

我正在使用带有完整框架的 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 以使其与文件匹配,从而解决了该问题。修复它对我来说并不难,但我想自动化部署,并且我想避免不得不做一些可以修复这个文件的东西。

我做错了什么还是有办法强制延期?

标签: .netasp.net-coredotnet-publish

解决方案


事实证明这是设计使然,如果我部署指定 -r win,我会在 web.config 中获得文件扩展名。


推荐阅读