Azure Web App:favicon.ico上的HTTP错误500

时间:2015-09-01 07:10:23

标签: azure iis azure-web-sites azure-diagnostics

发布到我的Azure Web App后,我经常遇到以下500服务器错误。

如果我删除了网络应用程序,重新创建并重新发布,一切都很好。

我通过打开诊断程序(在Azure门户中)并在Visual Studio 2015的Cloud Explorer中找到详细的错误页面来检索以下错误页面:

DetailedError

错误页面

  

HTTP错误500.0 - 内部服务器错误

     

无法显示页面   因为发生了内部服务器错误。

     

最有可能的原因:

     
      
  • IIS收到了请求;但是,一个内部   处理请求期间发生错误。根本原因   此错误取决于哪个模块处理请求以及什么是   发生此错误时发生在工作进程中。
  •   
  • IIS不是   能够访问网站或应用程序的web.config文件。   如果NTFS权限设置不正确,则会发生这种情况。
  •   
  • IIS是   无法处理网站或应用程序的配置。
  •   
  • 的   经过身份验证的用户无权使用此DLL。
  •   
  • 的   请求映射到托管处理程序,但.NET可扩展性   功能未安装。
  •   
     

您可以尝试的事情:

     
      
  • 确保NTFS权限   web.config文件是正确的,并允许访问Web服务器   机器帐户。
  •   
  • 检查事件日志以查看是否有其他日志   记录了信息。
  •   
  • 验证DLL的权限。
  •   
  • 安装   如果请求映射到托管,则.NET可扩展性功能   处理程序。
  •   
  • 创建跟踪规则以跟踪此HTTP的失败请求   状态代码。有关为其创建跟踪规则的详细信息   请求失败,请点击此处。
  •   
     

详细错误信息:

     

模块 ManagedPipelineHandler

     

通知 MapRequestHandler

     

处理程序 StaticFile

     

错误代码 0x00000000

     

请求的网址 http://myurl:80/favicon.ico

     

物理路径 D:\ home \ site \ wwwroot \ favicon.ico

     

登录方法匿名

     

登录用户匿名

解决favicon.ico似乎存在问题。我已经从wwwroot部署中包含并排除了这一点,但没有区别。

有谁知道会出现什么问题?

注意:如果重要的话,我正在使用MSDN中的the following publish script

这与我的previous posts之一相关。

3 个答案:

答案 0 :(得分:1)

使用ASP.NET 5可能很难捕获错误。在Startup.cs文件中,您有Configure方法。将Configure方法中的所有内容包装到这样的try-catch块中。然后你可以慢慢构建你的应用程序,看看它什么时候爆炸。至少你会知道它不在Configure方法中,或者如果它是,那么你现在将会有哪些额外功能引起它。您也可以在其他方法中使用此策略。

public void Configure(IApplicationBuilder app)
{
    // HACK: for Azure web apps,
    // the try-catch block lets us see errors that occur during configuration
    try
    {
        app.UseErrorPage();
        app.UseRuntimeInfoPage();
        app.UseStaticFiles();

        // add in remaining functionality one bit at a time...
    }
    catch (Exception ex)
    {
        app.Run(async (context) =>
        {
            await context.Response.WriteAsync(ex.ToString());
        });
    }

    // Run on each request
    app.Run(async (context) =>
    {
        await context.Response.WriteAsync("Hooray. It didn't error out.");
    }
}

答案 1 :(得分:1)

我的问题最终是我为我的API启用了帮助区域并将其设置为使用自动生成的XML,但未在我的解决方案中包含该XML文件(因此它未被发布到天蓝)。不知道为什么它会抱怨这个图标。

答案 2 :(得分:0)

此错误消息有点令人困惑。真正的问题在于Startup.cs。您必须通过在开发人员模式下启用应用程序来进行切换: Show ASP.NET 5 error page in Azure web app