Web開發(fā)異常行為排查常用方法圖文介紹
平常程序遇到錯誤,開發(fā)環(huán)境下一般都用調(diào)試搞定,生產(chǎn)環(huán)境下通過查看日志搞定。但也有搞不定的時候,這是我在Silverlight開發(fā)時遇到的的錯誤:
如果啟用調(diào)試,"對不起,程序已經(jīng)崩潰,無法附加到進程"。怎么辦?提示信息太少,盲目懷疑程序哪里寫的不對,只會使問題變得更糟,拖延了解決問題的時間。
異常排查此時我們應(yīng)該查看是哪一個請求引起的錯誤,方法就是使用瀏覽器的開發(fā)者工具:IE8以上按f12,chrome按下ctrl+shift+I,轉(zhuǎn)到“網(wǎng)路”,開始捕捉:
這里我們得到的是一個500錯誤,知道了是請求.svc時出錯了。雙擊查看響應(yīng)正文或者直接復(fù)制請求url到瀏覽器訪問可以得到更詳細(xì)的出錯信息:
我們看到調(diào)用堆棧還沒有開始調(diào)用我們的代碼,和我們自己的代碼沒有關(guān)系。此時去google(程序猿果斷放棄baidu吧),沒有找到任何解決問題的方法。我們只能根據(jù)自己程序的實際情況,判斷是DomainService出的問題。因為平時按部就班寫的程序根本不出現(xiàn)這種錯誤,但這次是引用的類庫中的DomainService,所以一定是漏掉了什么dll導(dǎo)致的。最偷懶的解決方法:手動添加一個“域服務(wù)類”到工程,VS自動添加所需dll,并配置好了web.config。再次運行,問題解決了。
結(jié)論最怕遇到這種錯誤提示很少的的錯誤,因為莫名其妙,無從查起,讓人抓狂。有時一個錯誤一下午就浪費過去了,還不一定解決。方法還是具體問題具體分析,根據(jù)程序的實際情況,結(jié)合自己的成功經(jīng)驗,多google,一定能解決的。當(dāng)然如果自己解決了又google不到的最好發(fā)到cnblogs,作為前車之鑒服務(wù)大家,這也是寫技術(shù)博的猿最愿意做的事吧。
相關(guān)文章
DataGrid 動態(tài)添加模板列 實現(xiàn)代碼
模版控件能讓用戶幾乎不用花費任何時間就創(chuàng)建出復(fù)雜的用戶界面. Asp.net有很多控件都使用了模版技術(shù)(DataGrid就是一個例子). 而這些控件都工作得很好, 通常, 模版可以被保存為ascx文件以增加復(fù)用性. 很有可能, 事前你是不知道你的控件是怎么布局的, 而且你需要動態(tài)的添加一些模版以應(yīng)付不同的事件.2009-04-04asp.ent下合并兩個結(jié)構(gòu)相同的DataTable
今天遇到了一個情況,就是從一張數(shù)據(jù)表中讀取幾個符合條件1的客戶的信息,然后再讀取幾個符合條件2的客戶的信息,最后顯示出來.因為前后兩次數(shù)據(jù)的客戶信息的結(jié)構(gòu)是完全相同的,所以干脆合并成一個DataTable再賦值給GridView好了.2010-02-02.Net6集成IdentityServer4?+AspNetCore?Identity讀取數(shù)據(jù)表用戶且鑒權(quán)授權(quán)管理A
這篇文章主要介紹了.Net6集成IdentityServer4與AspNetCore?Identity讀取數(shù)據(jù)表用戶且鑒權(quán)授權(quán)管理API,IdentityServer4?實現(xiàn)鑒權(quán)、授權(quán),AspNetCore?Identity實現(xiàn)數(shù)據(jù)庫用戶管理表直接生成,下文詳情需要朋友可以參考一下2022-07-07ASP.NET?Core配置設(shè)置之Configuration包
這篇文章介紹了ASP.NET?Core配置設(shè)置之Configuration包,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07如何在ASP.NET Core中給上傳圖片功能添加水印實例代碼
這篇文章主要給大家介紹了關(guān)于如何在ASP.NET Core中給上傳圖片功能添加水印的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02使用HttpClient增刪改查ASP.NET Web API服務(wù)
這篇文章介紹了使用HttpClient增刪改查ASP.NET Web API服務(wù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10ASP.NET SignaiR 實現(xiàn)消息的即時推送,并使用Push.js實現(xiàn)通知的示例代碼
ASP.NET SignalR 是為 ASP.NET 開發(fā)人員提供的一個庫,可以簡化開發(fā)人員將實時 Web 功能添加到應(yīng)用程序的過程。有興趣的可以了解一下。2017-01-01