除錯狀態下無錯,發布後出現奇怪的錯誤,報錯現象如圖:
當時候就鬱悶了,這是為什麼?看提示像是配置檔案中的錯誤,找大半天並不是的……,請教高手,找度娘,終於找到了一稿子,在這與大家共享。其實這並不是什麼配置檔案的錯誤。
先說下錯誤原因,然後才能修改並以後避免這樣的錯誤。
在asp.net
中,每個
aspx
頁面都會有乙個
.cs檔案,(好像不可以多個
aspx
共用乙個
cs的,我前面就碰到這個問題),在
aspx
頁面中,我們會用到伺服器控制項,或
html
控制項,這些控制項的
id命名時,如果與
cs檔案中的變數重名的話,就會出錯;而且不管大小寫是否一樣,都會報錯;
可能大家會問,
c#不是區分大小寫的嗎?
c#是區分大小寫的,也正是因為如此,我們在除錯時不會報錯,而
iis呢,它是不區分大小寫的,發布後,就報錯了。
當然,如果你不想改動程式去修正這個錯誤的話,你也可以將整個專案的源程式複製到
iis目錄下,就可以正常執行,呵呵,非常不建議這樣做;
我們寫在程式時,雖然
c#中,變數
string company
與string company
會被區分成兩個變數;但我們並不提倡這樣做,應盡量避免,這個大家一般不會寫錯;主要是
aspx
頁面中的控制項id,
id之間也不要用相同的字元,而且與
cs檔案中變數名也不要採用相同的字元,不僅是區分大小寫的問題;
再有,就是,在程式中,我們寫好了一類,如
deparment
;而我們在
aspx
的頁面中,放了乙個控制項,如
gridview
,其id
為department
或是deparment
,在cs
檔案中,我們照樣可以
deparment.datasource
,以及deparment.databind()
來繫結,都不會報錯的;而一旦發布後,到了
iis中,就會報錯;
這些命名方法,雖然不算錯誤的,但要避免,不要光看除錯時報不報錯,關鍵是,專案發布後是否正常執行;我們還要考濾專案發布後的執行環境,就是在
iis下的情況。
參考文章:
「 」應用程式中的伺服器錯誤。
說明 執行當前 web 請求期間,出現未處理的異常。請檢查堆疊跟蹤資訊,以了解有關該錯誤以及 中導致錯誤的出處的詳細資訊。異常詳細資訊 system.io.directorynotfoundexception 未找到路徑 g 的一部分。源錯誤 執行當前 web 請求期間生成了未處理的異常。可以使用下...
「 」應用程式中的伺服器錯誤
執行時錯誤 說明 伺服器上出現應用程式錯誤。此應用程式的當前自定義錯誤設定禁止遠端檢視應用程式錯誤的詳細資訊 出於安全原因 但可以通過在本地伺服器計算機上執行的瀏覽器檢視。詳細資訊 若要使他人能夠在遠端計算機上檢視此特定錯誤資訊的詳細資訊,請在位於當前 web 應用程式根目錄下的 web.confi...
「 」應用程式中的伺服器錯誤
作業系統 windows7 64位 應用程式中的伺服器錯誤。未能載入檔案或程式集 或它的某乙個依賴項。試圖載入格式不正確的程式。說明 執行當前 web 請求期間,出現未經處理的異常。請檢查堆疊跟蹤資訊,以了解有關該錯誤以及 中導致錯誤的出處的詳細資訊。異常詳細資訊 system.badimagefo...