HTTP错误500.31-无法加载ASP.NETCore运行时
c#
我在 Windows 10 机器上将 .NET Core 应用程序部署到 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 条错误消息。
-
无法找到应用程序依赖项。确保安装了应用程序针对的 Microsoft.NetCore.App 和 Microsoft.AspNetCore.App 版本。
-
找不到“aspnetcorev2_inprocess.dll”。异常信息:
-
无法启动应用程序“/LM/W3SVC/4/ROOT”,错误代码“0x8000ffff”。
仅就这些而言,我会认为项目构建中存在一些问题,或者我安装了一些 .NET Core 包,除了:
- 我还有另外两个 .NET Core 3.1 站点在不同的端口上运行。事实上,如果我将文件从工作站点的目录复制到非工作站点的目录,它们将不会通过 IIS 运行。如果我将文件从非工作站点的目录复制到工作站点,这些文件将通过 IIS 运行。
- 如果我单击任何站点的可执行文件并导航到指定的本地主机,它们就会在 Web 浏览器中正常打开。
- 我可以在同一系统的任何位置运行各种依赖于框架和自包含的 .Net Core 3.1 和 .Net Core 5.0 控制台应用程序。
- 我第一次去发布时,这两个可以正常工作的站点显示了相同的错误消息。我尝试调整设置、重新安装运行时等,但未能隔离导致它们在第一次尝试部署后几小时开始运行的任何内容。
- 应用程序池中的设置或站点本身在工作站点和不工作站点之间没有明显差异。
我认为我配置 IIS、站点或应用程序池的方式一定存在一些问题,但我可以说没有任何区别。如果有人遇到过这种情况,我会听取建议。
回答
就我而言,目标机器缺少 ASP.NET Core 运行时本身。
从
https://dotnet.microsoft.com/download/dotnet-core/3.1安装Hosting Bundle后问题已解决