【问题标题】:Aspnet Core Self-Contained deploy's web.config missing file extensionAspnet Core Self-Contained deploy 的 web.config 缺少文件扩展名
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    相关资源
    最近更新 更多