使用IIS部署ASP.NET Core网站时出现502.5错误

5

我有一个ASP.NET Core 1.0应用程序,已经成功部署并在我们的预生产服务器上运行了几个月。今天我尝试使用这篇文章作为指南将网站部署到我们的生产服务器上:

https://docs.asp.net/en/latest/publishing/iis.html

问题在于我们无法解决以下错误:

HTTP Error 502.5 - Process Failure

Common causes of this issue:
* The application process failed to start
* The application process started but then stopped
* The application process started but failed to listen on the configured port

我们尝试了这篇文章中列出的方法,但还是没有成功:ASP.NET Core 1.0在IIS上出现502.5错误
你如何调试502.5错误,以找到实际失败的原因?
应用程序的日志文件已创建,但不幸的是它们为空。Web服务器的事件查看器包含此条目:
Process was created with commandline 'D:\Applications\PVP\UserInterface.exe' but failed to get the status, errorCode = 0x80070005

非常感谢你提供的帮助!Tory。


我写了这篇文章:https://blog.3d-logic.com/2016/06/08/running-asp-net-core-applications-with-iis-and-antares/ 在文章末尾,它展示了如何解决此类错误的方法。首先检查事件日志。第二步启用stdoutLog。 - Pawel
1
谢谢Pavel。我已经阅读了这篇文章。如上所述,stdout日志文件正在创建。但它们的大小始终为0,因此它们对我没有任何有用的信息。此外,事件日志确实有一个错误,我也在上面提到了。这个错误似乎非常普遍,但在谷歌上搜索并没有带给我任何结果。 - Tory E
2个回答

3

尝试确定问题是服务器(IIS)还是应用程序。通过查找并直接运行应用程序来实现这一点。找到您的web.config并运行该进程。

对于DLL,可以使用以下方法:

dotnet MyApp.dll

对于EXE文件来说,这是:
MyApp.exe

对于您来说,这可能意味着直接运行 D:\Applications\PVP\UserInterface.exe

1
嗨,肖恩,谢谢你的回复。我尝试运行.exe文件,然后点击链接,似乎一切正常。自从写这篇文章以来,我们已经启动了第二个生产Web服务器,应用程序启动良好。仍然不清楚为什么第一个生产Web服务器无法工作。 - Tory E

2

我一直在为.NET Core 2.0网站的这个问题苦苦挣扎,后来我意识到IIS需要在服务器上有一个web.config文件,才得以解决。

以下是我的文件,对我来说关键的元素是processPath和arguments。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
<handlers>
  <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" 
    arguments=".\My App.dll" 
    stdoutLogEnabled="true" 
    stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

1
我发布原贴已经有一段时间了。我们终于找到了问题的根本原因。对我们来说,web.config文件是存在的,但由于某种原因,发布步骤没有正确更新它。一旦我们放置了一个有效的web.config文件,问题就消失了。 - Tory E
我的 web.config 文件中有一个在参数中不存在的 dll。删除文件中多余的 dll 解决了这个问题。我认为这与重组项目有关。 - frogcoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接