首页 > 解决方案 > HTTP 错误 500.31 - 无法加载 ASP.NET Core 运行时

问题描述

我在将 .NET Core 应用程序部署到 Windows 10 机器上的 IIS 时遇到问题。

当我部署到 IIS 并导航到该站点时,我收到以下消息:

"HTTP Error 500.31 - Failed to load ASP.NET Core runtime
Common solutions to this issue:
The specified version of Microsoft.NetCore.App or Microsoft.AspNetCore.App was not found.
Troubleshooting steps:
Check the system event log for error messages
Enable logging the application process' stdout messages
Attach a debugger to the application process and inspect
For more information visit: https://go.microsoft.com/fwlink/?LinkID=2028526

在我的事件查看器中,每次调用页面都会生成 3 条错误消息。

  1. 无法找到应用程序依赖项。确保安装了应用程序所针对的 Microsoft.NetCore.App 和 Microsoft.AspNetCore.App 版本。

  2. 找不到“aspnetcorev2_inprocess.dll”。异常消息:

  3. 无法启动应用程序“/LM/W3SVC/4/ROOT”,错误代码“0x8000ffff”。

仅凭这些,我就会陷入困境,认为项目的构建中存在一些问题,或者我安装了一些 .NET Core 包,除了:

  1. 我在不同的端口上运行了另外两个 .NET Core 3.1 站点。事实上,如果我将文件从工作站点的目录复制到非工作站点的目录,它们将不会通过 IIS 运行。如果我将文件从非工作站点的目录复制到工作站点,这些文件将通过 IIS 运行。
  2. 如果我单击任何站点的可执行文件并导航到指定的本地主机,它们就可以在 Web 浏览器中打开。
  3. 我可以在同一系统的任何位置运行各种依赖于框架且自包含的 .Net Core 3.1 和 .Net Core 5.0 控制台应用程序。
  4. 我第一次发布时,这两个正常工作的网站显示了相同的错误消息。我尝试调整设置、重新安装运行时等,但未能隔离任何导致它们在第一次尝试部署后几个小时开始运行的东西。
  5. 应用程序池中的设置或站点本身在工作的站点和不工作的站点之间没有可见的差异。

我认为我配置 IIS、站点或应用程序池的方式肯定存在一些问题,但我可以说没有任何区别。如果有人遇到过这种情况,我很乐意听取建议。

标签: c#asp.net-coreiis

解决方案


就我而言,目标机器缺少 ASP.NET Core 运行时本身。

.Net Core 3.1安装Hosting Bundle后问题已解决


推荐阅读