平常程序遇到錯誤,開發(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到瀏覽器訪問可以得到更詳細的出錯信息:
我們看到調(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ù)博的猿最愿意做的事吧。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com