【问题标题】:HTTP 500 error launcing ASP.NET 3.0 application启动 ASP.NET 3.0 应用程序时出现 HTTP 500 错误
【发布时间】:2020-02-18 09:12:26
【问题描述】:

我刚刚将我们的 ASP.NET Core 2.2 Web 应用程序升级到 3.0。它构建和部署良好。问题是当我从我们的 IIS 服务器运行它时。作为一个 Core 2.2 网络应用程序,它运行得非常好,但现在升级到 Core 3.0 后就失败了。

当我从命令行启动网络应用时,没有报告错误。

当我从浏览器启动应用程序时,Windows 日志显示应用程序已正确启动。

然后应用程序失败并出现 HTTP 500 错误。以下是 IIS 日志条目。

我们使用 Windows Server 2012 R2IIS 8.5.9600.16384

应用似乎可以正确启动,但随后失败并出现 HTTP 500 错误。有没有其他人看过这个或类似的东西?任何想法如何诊断/解决问题?

更新

我已通过 w3wp.exe 进程将 VS 2019 调试器附加到已部署的应用程序,它甚至没有命中任何中间件(我在 Startup.cs 的 Startup() 处有一个断点)。

我已尝试更改应用程序池设置,例如身份,.NET 版本,但无济于事。

当我从网络服务器启动网站时,我收到以下错误消息,它并没有真正告诉我任何事情。

我看不出是什么导致了问题。

【问题讨论】:

  • 尝试从 main 方法逐行调试,并尝试找出哪一行是引发 500 错误的原因。
  • 如何调试已部署的网络应用?
  • 您可以附加相应的 w3wp.exe(iis 工作进程),如果它被部署为进程内,它应该附加您的 DLL。如果由于某种原因,它是 outofproc,那么你应该让 yourproject.exe 运行。

标签: asp.net-core iis-8 asp.net-core-3.0


【解决方案1】:

.NET Core 3.0 默认使用进程内托管模型。您可能需要升级.NET Core Hosting Bundle

【讨论】:

  • 我将 ASP.NET Core 3.0 与 .NET Core 3.0 托管捆绑包一起使用。据我所知,一切都配置正确。
  • 如果您在服务器本身上运行的 Web 浏览器中访问该站点会发生什么?您应该会收到更详细的错误消息。
  • 这就是我正在做的。我正在服务器上运行该站点,但根本没有收到详细的错误消息。就好像它甚至没有触及任何代码。我不知道这是 IIS 问题还是其他地方的错误配置。
  • 当您访问您的网站时,您会在浏览器中返回什么?一个完全空白的页面?
  • 我已经更新了我的问题 - 请参阅上面的屏幕截图。
【解决方案2】:

您将检查 web.config "aspNetCore"

<aspNetCore processPath="dotnet" arguments=".\Api.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />

可能 proccessPath 是错误的。

如果不能解决问题,请写入 log step step startup.cs。 可能会在 startup.cs 中抛出错误

【讨论】:

    【解决方案3】:

    在对构建生成的构建工件与已部署的应用进行调查和比较后,我发现 appsettings.json 没有被部署。不知道这如何或何时开始失败,但它导致应用生成 HTTP 500 错误消息。我们的应用程序的 Azure ADB2C 设置包含在此文件中,因此它在尝试进行身份验证时崩溃,但找不到身份验证设置。

    没有产生明显的错误,一切似乎都加载正常。正是在该应用程序尝试进​​行身份验证时,它失败了。现在都在工作。

    【讨论】:

      猜你喜欢
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      • 2017-08-20
      • 1970-01-01
      相关资源
      最近更新 更多