ASP.NET Core 1.0在IIS上显示错误502.5

0 投票
最新提问 3月 7 用户: 双鱼座 (260 分)

我刚刚将服务器(Windows 2012 R2)的.Net Core 1.0 RC2更新为.Net Core 1.0 RTM。应用程序在我的个人 电脑没有任何问题,但服务器不断显示:

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

以前使用RC2版本正常,不知道什么原因导致的出错。

这是事件查看器的记录:

Failed to start process with the commandline 'dotnet .\MyWebApp.dll'. Error code = '0x80004005'.

最糟糕的是应用程序日志是空的!那些stdout_xxxxxxxxx.log文件是完全空的,都是0字节大小。

我该怎么办?如何查找错误的原因?

1个回答

0 投票
最新回答 3月 7 用户: 宁静致远 (220 分)

我也遇到了同样的问题,在我这里是由于该应用程序池的用户身份权限不足,在asp.net文档的IIS发布说明页面上,列出了出现这个错误的一些原因:

  • 如果你发布了自包含(独立)的应用程序,请确认你没有在项目的buildOptions中设置一个具体的平台,与发布RID冲突。例如,不要指定x86平台并使用RID win81-x64(dotnet publish -c Release -r win81-x64)发布。该项目将发布而不发出警告或错误,但在服务器上出现上述记录的异常失败。
  • 检查web.config中的<aspNetCore>元素上的processPath属性以确认它是dotnet用于便携式应用程序,或者\my_application.exe用于自包含应用程序。
  • 对于便携式应用程序,dotnet.exe可能无法通过PATH设置访问。确认PATH环境变量中包含C:\Program Files\dotnet\。
  • 对于便携式应用程序,dotnet.exe可能无法访问应用程序池的用户标识。确认AppPool用户标识有权访问该C:\Program Files\dotnet目录。
  • 通过调用应用程序的.UseIISIntegration()方法确认您已正确引用IIS集成中间件WebHostBuilder()。
  • 如果您在Kestrel中使用.UseUrls()扩展方法,请确认它位于WebHostBuilder()的.UseIISIntegration()扩展方法之前。当在IIS之后运行Kestrel时,.UseIISIntegration()必须为反向代理设置Url确保它不被.UseUrls()的值覆盖。

我遇到的是第四种情况,通过右键单击应用程序池,并在高级设置下将身份设置为具有足够的权限的用户:

 我的应用程序池的用户身份

欢迎来到编程助手,编程方面有什么不懂的问题可以尽管在这里提问,你将会收到热心爱好者的回答。
...