【发布时间】:2020-12-16 05:52:25
【问题描述】:
我在将 .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 条错误消息。
-
无法找到应用程序依赖项。确保已安装应用所针对的 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、站点或应用程序池的方式肯定存在一些问题,但我可以说没有任何区别。如果有人遇到过这种情况,我很乐意听取建议。
【问题讨论】:
-
能否分享一下你的IIS网站文件结构?你如何托管新的两个应用程序?您创建了两个新的 Web 应用程序?
-
如果您不熟悉 IIS,则不容易观察到差异。运行报告docs.jexusmanager.com/tutorials/ancm-diagnostics.html,看看他们说了什么。
-
@LexLi - 你制作了多么棒的工具!我能够快速运行 net-core 诊断并发现应用程序池没有对站点文件夹的权限。快速轻松地修复数小时的故障排除。
-
从 Visual Studio 发布时忽略设置“自包含”部署模式时出现此错误。
-
在哪里可以找到这个神奇的工具!链接都坏了。
标签: c# asp.net-core iis