2014-09-06 75 views
3

我在Azure上有一個ASP.NET Webforms應用程序,但在某些網站上我總是收到以下錯誤: 502 - Web服務器在充當網關或代理服務器時收到無效響應。Azure網站錯誤502

我已經閱讀了很多有關Azure上的502錯誤的主題,但我仍然不明白在特定情況下的問題是什麼。

該錯誤僅發生在應用程序的某個網站上。我總是可以複製以下模式:

  • 開放SITENAME.azurewebsites.net - >錯誤發生
  • 開放SITENAME.azurewebsites.net/Site1.aspx - >錯誤不存在的
  • 打開SITENAME.azurewebsites。淨/ Site2.aspx - 不存在的
  • 刷新SITENAME.azurewebsites.net/Site2.aspx>錯誤 - >發生錯誤並不會消失,直到我再次打電話Site1.aspx

我唯一在日誌中發現的是,那個應用程序加載System.Windows.Forms.dll並且存在AccessViolationException。我不知道爲什麼這個DLL會被加載,因爲在Visual Studio的任何項目中都沒有引用它,但那又是另一回事了:)。

,但我不明白的是,錯誤502並不總是對網站502發生 也許有人可以給我一個提示可能是什麼問題或如何我能找到它...

謝謝你的幫助!

編輯: 什麼我忘了提:在某些線程關於這個錯誤我看,這3分鐘類似的東西后發生。在我的情況下,直到錯誤信息顯示出來的時間將近25秒。

回答

8

指向應用程序問題。你正在設置502的原因是因爲工作進程崩潰,前端留下一個沒有響應的請求,並返回一個502來說明這一點。在您的網站的LogFiles文件夾下尋找eventlog.xml。或者,您可以嘗試remote debugging from VS to your website

System.Windows.Forms.dll包含很多UI代碼,很可能無法工作Azure網站沙箱。它被加載的原因可能是因爲你正在使用程序集中的某些東西,或者使用了某些使用該程序集中某些東西的東西。它不必在Visual Studio中列出,因爲它是標準.NET Framework的一部分。

我會建議尋找遠程調試,並找出這是越來越加載和爲什麼。

+0

感謝您的回答!我嘗試了遠程調試,但我沒有得到太多,因爲我啓動後遇到了AccessViolationException :)。關於Windows.Forms.dll:是否有可能,System.Drawing.dll導致Windows.Forms加載? – metabolic 2014-09-06 19:41:09

+0

是的,你從System.Drawing中使用了什麼? System.Drawing使用了很多被Azure Sandbox阻止的GDI +代碼。一般來說,大多數UI代碼將被阻塞,因爲它取決於被阻止的內核調用。一般來說,你不應該在服務器代碼中使用它。如果你只是使用System.Drawing的幫助函數,那麼他們可能是其他選擇 – ahmelsayed 2014-09-06 22:29:10

1

在我的情況下,我得到了502錯誤,因爲該網站是由天藍色的自動癒合系統重新啓動。事實證明,前幾天我使用該自動癒合系統進行了測試,但由於最終我禁用了它,因此我不認爲這可能會導致我的502錯誤。

這是我發現改變自動修復設置(mywebsite.scm.azurewebsites.net/Support->緩解)的azure界面僅影響生產槽。但是當您交換部署插槽時,設置會互換。顯然沒有辦法直接更改臨時插槽設置,您必須交換,更改設置並再次交換。

因此,我最終啓用了啓用了自動修復的臨時插槽,並禁用了自動修復功能的生產插槽(當然,當時我還認爲它在兩個插槽上都被禁用了)。然後,我根據我交換的次數,隨機地「在分段或生產中發生502錯誤」。奇怪的是,雖然應用程序似乎重新啓動(或至少未能響應幾個請求),但我沒有在日誌文件中看到相應的事件,就像在應用程序池回收觸發後沒有運行Application_Start由自動治療系統。

花了我一整天的時間來了解發生了什麼,我希望這個答案能夠幫助處於相同情況的人。

+0

我發現一個錯誤報告給微軟,請求沒有路由到正確的Web服務器。他們應該在一個月內修復這封郵件。我相信這個bug在那裏有一段時間。 – jsgoupil 2016-03-25 18:34:46

+0

嗨@jsgoupil,交換時同樣的事情發生在我身上......你知道它是否已被糾正? – Subgurim 2016-05-13 14:02:38

+1

@Subgurim我相信這是固定的。我一直在交換沒有任何問題。我還沒有運行我的測試儀。 – jsgoupil 2016-06-01 17:07:21