service免費 - azure免費sql




在Azure Web應用程序中顯示ASP.NET 5錯誤頁面 (5)

你的startup.cs有一些運行時代碼與Azure不一致。 通過移動app.UseDeveloperExceptionPage()強制開發人員友好異常頁面進行渲染; 到配置(...)的開頭。 將更新的代碼發佈到Azure,重新加載主頁和異常現在將有所幫助。

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

將ASP.NET 5 Web應用程序部署到Azure Web App時,我收到500內部服務器錯誤。

如何獲取此異常的詳細信息和堆棧跟踪?

我做了以下但沒有運氣:

  • 在啟動時使用診斷錯誤頁面:

    app.UseErrorPage();

  • 在Azure門戶中設置ASPNET_ENV

使用DNX beta 6。


嘗試在Web.config文件中將customErrors模式設置為off,如下所示:

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

如果這對某人有幫助,我發現如果你正在使用ASP.NET RC1並且你正在使用Azure WebApps並添加一個名為Hosting:Environment的應用程序設置,其development值為服務器500錯誤的堆棧跟踪將顯示。

為此,Startup.cs中的Configure方法需要在使用Development環境時使用Developer Exception頁面。 例如:

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

    // etc
}

我有完全相同的問題 - 總是得到500,從未見過最小的日誌或信息有什麼不對。 即使在註釋掉Startup.cs中的所有內容並且只是訪問靜態文件之後我就得到了500(儘管有時令人驚訝的是靜態文件正確地提供,但它從發布變為發佈到同一個應用程序)。

我想在我的部署中有些文件被破壞了,azure沒有檢測到它。 或者也許在服務器上留下了一些文件在運行時引起衝突 - 下次我認為更改發布配置文件以便不在服務器上保留額外文件(默認情況下它們不會被刪除)也是值得的。

我最終刪除並重新創建了應用程序,解決了這個問題。


當您從運行ASP.NET 5的Azure Web應用程序獲取HTTP 500並且無法獲得詳細的錯誤輸出時,根據我的經驗,這有兩個原因之一:

  • 您的Startup.cs導致了問題
  • 無法加載運行時

為了處理第一類問題,你最好編寫一個錯誤處理程序,它將在某處記錄啟動錯誤(我們使用Raygun.io,你的需求和偏好應該決定你的解決方案)。

對於第二種類型,我提出的最好的方法是通過網站的診斷功能 - 您可以訪問Windows Server事件日誌,它將告訴您運行時是否被識別。





dnx