在Azure Web应用程序中显示ASP.NET 5错误页面

时间:2015-08-13 15:10:50

标签: azure azure-web-sites asp.net-core asp.net-core-mvc dnx

将ASP.NET 5 Web应用程序部署到Azure Web App时,我收到500内部服务器错误。

enter image description here

如何获取此异常的详细信息和堆栈跟踪?

我做了以下但没有运气:

  • 启动时使用诊断错误页面:

    app.UseErrorPage();

  • 在Azure门户中设置ASPNET_ENV

Azure Web App app settings

使用DNX beta 6。

7 个答案:

答案 0 :(得分:26)

如果这对某人有帮助,我发现如果您正在使用ASP.NET RC1并且您正在使用Azure WebApps并添加名为Hosting:Environment的应用程序设置将显示development服务器500错误的堆栈跟踪的值。

enter image description here

要使其工作,Startup.cs中的Configure方法需要在使用开发环境时使用Developer Exception页面。例如:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) {
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        app.UseDatabaseErrorPage();
    }

    // etc
}

答案 1 :(得分:4)

根据this post(感谢Muhammad),我应该能够通过编辑服务器的web.config来获取Azure上的运行时错误(非常正确,Celt)。

不幸的是,这没有用 - 没有详细的例外。

我做了一些挖掘并找到了这些“详细错误”日志:

DetailedErrors

这是他们所包含的内容:

HTTP Error 500.0 - Internal Server Error

尝试在favicon.ico处解决D:\home\site\wwwroot\favicon.ico时似乎出现了问题。

那个地方确实没有图标。我纠正了这个,但仍然是同样的问题。事实上,我从来没有过一个图标,这曾经有用过。

最后,我删除了Azure门户中的整个Web应用程序并重新发布... TADA,它再次有效。

答案 2 :(得分:3)

当您从运行ASP.NET 5的Azure Web应用程序获取HTTP 500并且无法获得详细的错误输出时,根据我的经验,它有两个原因之一:

  • 您的Startup.cs导致问题
  • 无法加载运行时

为了处理第一类问题,您最好编写一个错误处理程序,以便在某处记录启动错误(我们使用Raygun.io,您的需求和首选项应该确定您的解决方案)。

对于第二种类型,我提出的最好的方法是通过网站的诊断功能 - 您可以访问Windows服务器事件日志,它将告诉您运行时是否被堵塞。

答案 3 :(得分:2)

尝试在Web.config文件中将customErrors模式设置为off,如下所示:

<system.web>
  <customErrors mode="Off" />
</system.web>

答案 4 :(得分:2)

您的startup.cs有一些运行时代码与Azure不一致。通过移动app.UseDeveloperExceptionPage()强制开发人员友好异常页面进行渲染;到配置(...)的开头。将更新的代码发布到Azure,重新加载主页和异常现在将有所帮助。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
     {
          app.UseDeveloperExceptionPage();
      ...
     }

答案 5 :(得分:1)

我有完全相同的问题 - 总是得到500并且从未见过最小的日志或信息有什么问题。即使在评论Startup.cs中的所有内容并简单地访问静态文件后,我也得到500(尽管有时候静态文件 正确地提供,但它从发布更改为发布到同一个应用程序)。

我认为部署中的某些文件已损坏,而azure未检测到它。或者也许服务器上还有一些文件在运行时引起冲突 - 下次我认为更改发布配置文件也不值得在服务器上保留额外文件(默认情况下它们不会被删除)。

我最终删除并重新创建了应用程序,解决了这个问题。

答案 6 :(得分:0)

如果你仍然像我一样使用旧版本的DNX堆栈(使用beta5,这是Visual Studio 2015附带的版本),那么他们的设置并没有真正记录好。我相信从那以后这已经发生了变化,但是这里有你必须放在web.config中的内容:

  <appSettings>
    <add key="ASPNET_DETAILED_ERRORS" value="true" />
  </appSettings>