2012-11-28 48 views
2

我已經啓動了一個Azure應用程序並運行,但各種請求生成500錯誤。沒有其他詳細信息從服務器返回,以便讓我確切地知道問題所在。沒有堆棧跟蹤,沒有錯誤消息。我從服務器返回的唯一信息是http標題,指示我有錯誤。Azure失敗的請求錯誤詳細信息

我已經做了一些四處尋找,但似乎無法找到一種方法來檢索我正在尋找的錯誤細節。我見過一些文章,建議我啓用日誌記錄,但我不確定1)如何做到這一點,2)這些日誌文件將去哪裏,以及3)如何訪問所述日誌文件。我見過的帖子說要將一大堆代碼添加到我的應用程序中來啓用日誌記錄,但是我要查找的是一條錯誤消息和來自500錯誤的堆棧跟蹤。我真的必須向我的應用程序添加一堆代碼才能看到這些信息嗎?如果不是,我怎麼能得到它?

謝謝!
Chris

回答

0

最好的長期解決方案是啓用Azure診斷,我認爲這是您所指的。如果您想要一個快捷的解決方案,您可以將錯誤記錄到文件中,然後將RDP記錄到角色實例中以查看它們。這與您在自己的數據中心的服務器上執行的操作非常相似。

不管你喜歡,你都可以創建日誌。我用log4net和RollingFileAppenders取得了一些成功。將日誌文件路徑設置爲「\ logs \ mylog.txt」之類的內容會將日誌放置在VM的E:驅動器中。請注意,您仍然需要在您的應用程序的某處捕獲錯誤並將其寫入日誌 - 通常Global.asax中的全局錯誤處理程序是一個很好的選擇。

您還必須啓用RDP訪問您的角色實例。有許多文章詳細說明如何做到這一點。 Here's one

這不是一般推薦的方法,因爲日誌在角色回收或重新創建時可能會消失。登錄時需要注意所有這些不同的服務器,這也是一種痛苦。

另一個警告 - 可能是500錯誤是由於web.config中的某些故障導致的。如果是這樣,世界上所有的應用程序級錯誤日誌都不會幫助你。因此,請確保您的web.config文件是有效的,並且在RDP進入服務器時檢查Windows事件日誌。

0

500內部服務器錯誤通常是由於服務器無法理解傳入請求或配置時出現問題而導致的一些問題。所以,試着在本地運行應用程序,看看是否有問題。您可以在catches/application_error中的數據庫中記錄錯誤,也可以使用跟蹤。相信我,他們是非常有幫助的,值得一些額外的代碼行。

如需查詢,請點擊這裏,http://msdn.microsoft.com/en-us/magazine/ff714589.aspx

相關問題