服務(wù)熱線
153 8323 9821
今天早晨調(diào)試一個(gè)程序時(shí),便宜過程出現(xiàn)外部組件發(fā)生異常錯誤,因?yàn)樵撳e誤無錯誤行號等信息,一時(shí)竟不知道錯誤來自哪里,只好求助網(wǎng)絡(luò),搜索后發(fā)現(xiàn)下面提示:
今天一個(gè) ASP.NET 程序編譯時(shí)發(fā)生錯誤:
外部組件發(fā)生異常。
但是并沒有對應(yīng)的詳細(xì)信息,和錯誤的行號等信息,很難排查。
經(jīng)過一段時(shí)間的檢查,發(fā)現(xiàn)原因出在一個(gè) User Control 后臺代碼中的引用不知何故寫成了:
using System.Windows.Forms;
這樣該 UserControl 的頁面基類就變成了 System.Windows.Forms.UserControl. 奇怪的是,用 "Build Page" 對該用戶控件進(jìn)行編譯時(shí),竟提示成功。而編譯整個(gè)網(wǎng)站則出錯。
上述錯誤信息中的“外部組件”應(yīng)該是從引用了該用戶控件的頁面角度而言的,對他來說這個(gè)用戶控件就是“外部組件”。
看過上面后,雖然跟我的并不相符,因?yàn)槲也]有修改用戶控件,昨天還好好的呢,但是也給了些提示,從用戶控件入手,因?yàn)楸救说闹饕丶袔讉€(gè),但是很多的頁面都引用了, 無從下手,于是,把一部分頁面剪切走,剩下只有很少用戶控減的頁面,在分別執(zhí)行,然后在逐步添加回剪切走的頁面,最后發(fā)現(xiàn)當(dāng)某一個(gè)控件出現(xiàn)時(shí)候該問題再次出現(xiàn),于是打開該用戶控件,找毛病,可是一樣,都是沒進(jìn)行過任何修改過的,于是,一部分注釋掉,找出問題的那部分,最后奇怪的是 當(dāng)把注釋的部分都還原后,一切都正常了,所有被剪切走的也面放回來后也都正常了,
雖然問題糊里糊涂的解決了,可也算是給自己,以后遇到此類問題的解決方向也有點(diǎn)提示吧,至于為啥不做任何修改問題解決,還望高手解釋.
接上面,正當(dāng)以為問題解決的時(shí)候這個(gè)錯誤象幽靈一個(gè)再次出現(xiàn),修改如下:
1.兩個(gè)用戶控件名字一樣,雖然路徑不同,,
2.發(fā)現(xiàn)注釋掉幾個(gè)也面和其中一個(gè)類后錯誤不再出現(xiàn),經(jīng)過檢查該類,發(fā)現(xiàn)該類引用了web.config中幾個(gè)<add key="" value="" />,而這些東西在web.config中是尚未建立的,這樣,就好解決了,建立上著幾個(gè),把注釋的也面注釋去掉,
然后重新編譯,問題解決.
可見,該問題是用戶控件有問題、引用了沒有的東西或者引用了別人的東西,而該東西不存在等原因造成