December 3, 2018

IIS 7 部署 Dotnet Core 2.1 应用时发生 HTTP Error 502.5 - Process Failure

IIS 7 部署 Dotnet Core 2.1 应用时发生 HTTP Error 502.5 - Process Failure

错误的问题

我使用了一台新的 Windows Server 2008 R2 服务器,并安装了 IIS 7。并给 IIS 安装了AspNetCoreModule 模块。

此时,看起来很顺利,但部署 dotnet core app 会发生如下错误:

1e39d2ba248648d7f5357cc4ce941d3

通过 事件查看器 > Windows 日志 > 应用日志 可看到来源为 IIS AspNetCore Module,级别为 错误 的日志内容:

Application 'MACHINE/WEBROOT/APPHOST/DOTNET-CORE' with physical root 'C:\Web\dotnet-core\' failed to start process with commandline 'dotnet .\WebApplication1.dll', ErrorCode = '0x80070002 : 0.

目前解决这个问题有两种方法:

方法一: 修改项目根目录下的 web.config 文件,将processPath="dotnet" 修改为 processPath="dotnet.exe" 或者 processPath="C:\Program Files\dotnet\dotnet.exe"

很明显,这种方案需要去修改每个网站应用目录中的 web.config 文件。

方法二: 重启 IIS,重启 IIS 的方式有很多:

  • 开始 菜单中搜索 iisreset 并回车执行;
  • cmd 中执行 net stop iisadminnet start iisadmin
  • 重启 Windows

AspNetCoreModule 模块的描述文档:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/index

AspNetCoreModule 模块的下载链接:https://www.microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer