簡體   English   中英

ASP.NET IIS 應用程序 500 內部服務器錯誤

[英]ASP.NET IIS Application 500 Internal Server Error

我有一個非常奇怪的問題。 我有一個開發環境,我開發了一個 ASP.NET MVC 應用程序,在這個環境中一切正常。 特別是在 Application 中有一個 AJAX 調用,它調用控制器並傳遞數據,控制器只需要用傳遞的信息更新數據庫。一切正常!。

但是,我將所有設置都作為開發環境(數據庫,連接字符串)跳到服務器上。 一切正常,登錄功能以及其他數據庫保存功能和控制器操作似乎工作正常。 除了返回 500 Internal Server Error 的 ONE 控制器。

我四處詢問,每個人都想查看日志。 在事件查看器中,沒有與此 500 內部服務器錯誤相關的日志。 然而,IIS 日志確實提供了一些信息,但該信息並未詳細說明導致 500 內部服務器錯誤的原因。

我知道 500 內部服務器錯誤是什么,我知道它是各種問題的一般錯誤,但是在查看日志后,我無法弄清楚為什么這個特定的控制器操作在生產服務器上運行時會給出 500 錯誤但是在開發環境中這樣做沒有問題 - 非常奇怪。

瀏覽器控制台

在此處輸入圖片說明

IIS 正常日志

在此處輸入圖片說明

500 上的 IIS 請求跟蹤失敗

在此處輸入圖片說明

2 周前我遇到了類似的問題,並且也在 stackoverflow [ asp.net web api: only during sql connection - HTTP 500 Error發生:本地主機當前無法處理請求

經過數小時的調查,發現它是數據庫中缺少的存儲過程。

不確定它是否會幫助您解決問題,但希望它可以為您解決問題提供一些線索。

遵循@A.Roussos 的建議,在 PRODUCTION SERVER 上使用 Visual Studio 調試(對我來說可能很明顯,它不會哈哈),我得到了一些信息。

我的問題是,在將數據保存到數據庫之前,我使用 parse 函數將字符串解析為雙倍。 例子

double a = Double.Parse(mystring);

然而,問題顯然是解析功能依賴於您的區域設置(CultureInfo)。 所以我只是在代碼中添加了以下信息

double a = Double.Parse(mystring,System.Globalization.CultureInfo.InvariantCulture);

需要注意的是,當我收到 500 Internal Server Error 時,我的應用程序沒有崩潰,我不知道可能導致它的原因。出去。

殺死我的是應用程序(或應用程序中的一個特定控制器操作)在開發環境中完美運行,但在生產環境中卻沒有,類似的事情在我身上從未發生過,我很高興獲得了這次學習經驗。

你能確保你點擊的 URL 中沒有任何空格嗎?

將 web.Config 設置為關閉的自定義錯誤模式。 您應該能夠看到完整的錯誤以及與這些相關的任何其他詳細信息。 很多時候,環境中缺少導致這些錯誤的方面。

似乎錯誤是由在控制器的 action 方法中調用的私有方法生成的,但錯誤本身正在被吃掉(空捕獲)或只是拋出,導致應用程序失敗。 檢查異常處理程序是否存在並以某種方式記錄詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM