【问题标题】:IIS 10 website running an ASP.NET Core MVC app only returns 500 Error运行 ASP.NET Core MVC 应用程序的 IIS 10 网站仅返回 500 错误
【发布时间】:2022-01-02 21:59:36
【问题描述】:

我已经(试图)在 IIS 10 上设置了一个 ASP.NET Core MVC 应用程序,但我得到一个 500 - Internal Server Error 试图通过浏览器访问它。

我已经安装了 .NET Core 包from microsoft

我的应用程序池正在使用“无托管代码”并且集成了管道模式。

我已将网站作为 Visual Studio 的独立应用程序发布。

如果我尝试从 IIS 更改站点的任何设置,我会收到以下错误

执行此操作时出错。

详情:

文件名:\?\C:\inetpub\wwwroot\文件夹名\web.config

我无法显示比500 更详细的错误,因为我无法打开“错误页面”设置。

如果我从web.config 中删除aspNetCore 标记,这些错误就会停止发生,但显然网站不会加载。我可以手动将详细的错误页面添加到 web.config 文件中,但它们似乎没有做任何事情。

stdoutLogEnabled 设置为 true 并且 IIS_IUSR 对其指向的文件夹具有写入权限,但正在记录的文件夹中没有任何内容。事件日志中也没有任何内容。

任何活动的唯一日志都在 C:\inetpub\logs\LogFiles\W3SVC2 文件夹中,显示了对请求的 500 条响应。

我能够加载网站,只需运行文件夹中的可执行文件,控制台中不会报告任何服务器错误

幸运的是,同一个网站(未)在 Visual Studio 和另一台服务器上的不同 IIS 安装上运行时没有出现错误。

【问题讨论】:

  • 如果您运行报告,那么原因应该很清楚,docs.jexusmanager.com/tutorials/ancm-diagnostics.html
  • 可以显示500的完整错误页面吗?
  • @BruceZhang 这只是常规的 500 错误页面,没有额外的信息。我已经解决了这个问题并发布了我在答案中搞砸的内容

标签: asp.net-core iis http-status-code-500


【解决方案1】:

我已经解决了这个问题。

我使用的是 ASP.NET Core Hosting Bundle 版本 5.0.0,因为我似乎错误地认为那是 .NET 5 的版本。

我将其更新到版本 6.0.0,并将错误页面转换为 HTTP Error 500.32 - Failed to load .NET Core host 和事件日志中的条目。

事件日志条目说明:

无法加载“C:\inetpub\wwwroot\foldername.\hostfxr.dll”。这可能是由 IIS 应用程序池之间的位数不匹配引起的 并发布应用程序。

所以我更改了应用程序池的 Enable 32-Bit Applications 设置,在更新包和更改该设置之间,有些东西起作用了。

【讨论】:

  • 考虑改为部署 64 位版本的 Web 应用程序。
  • @CodeCaster Web 应用程序是 64 位的,我将启用 32 位应用程序设置为 true,假设它的意思是“启用”而不是“强制”32 位。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-06
  • 2020-11-30
  • 2011-06-25
  • 2018-08-18
  • 2020-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多