.NET WebAPI 正確拋出錯誤詳細資料

來源:互聯網
上載者:User

標籤:style   blog   class   code   java   color   

最近把之前的WebAPI項目發布到伺服器上,資料庫由SQL Server2008 EXPRESS改為SQL Server2000,但在分頁查詢時伺服器拋出了“500錯誤”,但卻看不到錯誤的詳細資料,按照之前的經驗把設定檔的customErrors開啟依然看不到詳細資料,由於項目是發布在伺服器上,沒有辦法進行調試,且伺服器是windows20003,頁沒有辦法進行遠端偵錯,寫try…catch…捕捉action中的錯誤並拋出依然擷取不到詳細資料,得不到錯誤詳細資料就沒有方向對錯誤進行修改,然後就在網上搜尋解決辦法,發現WebAPI出現錯誤,只會拋出500,並不包含詳細資料,只有拋出HttpResponseException,才能得到錯誤的詳細資料,這樣就好辦了,代碼如下:

try{    ...}catch (Exception e) {    //在webapi中要想拋出異常必須這樣拋出,否則之拋出一個預設500的異常    var resp = new HttpResponseMessage(HttpStatusCode.InternalServerError)    {        Content = new StringContent(e.ToString()),        ReasonPhrase = "error"    };    throw new HttpResponseException(resp); }

最後根據錯誤詳細資料發現是新版NHibernate不支援SQL Server2000的分頁查詢了,又裝了一個SQL Server2005錯誤解決。

就在寫這篇記錄的時候剛想到其實用不著這麼麻煩,可以直接把Exception的詳細內容輸出的,又走彎路了…

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.