一、昨晚在改過一個bug之後在本機測試沒問題,於是提交代碼在測試伺服器上發佈之後測試的也沒問題。 既然測試的都沒問題,那就要往正式環境中發佈咯,然而,發佈到正式環境中就報錯:IL範圍不正確,這個錯是打開系統的時候就報出來的。 IL是一種中間語言,咋報了個這錯!於是又把dll重新拷貝過來發佈了一下,還 ...
一、昨晚在改過一個bug之後在本機測試沒問題,於是提交代碼在測試伺服器上發佈之後測試的也沒問題。
既然測試的都沒問題,那就要往正式環境中發佈咯,然而,發佈到正式環境中就報錯:IL範圍不正確,這個錯是打開系統的時候就報出來的。
IL是一種中間語言,咋報了個這錯!於是又把dll重新拷貝過來發佈了一下,還是同樣的錯,嗯,當時很難受。具體錯誤如下圖:
二、我發現錯誤信息中有.netframework2.0什麼什麼的,然後我就去百度這個錯誤,網上大致有這幾種說法:(1)是.netframework的原因,把.netframework卸載再重裝就可以了。(2)沒有裝.netframework3.5 sp1的問題。(3)是Maxtocode加密導致的。
三、然後我就開始思考:
1.如果對在正式伺服器上.netframework進行卸載重裝的話,風險太大(這時已經是夜裡12點了,系統明天早上9點是要可以正常使用的),於是就先不重裝,換其它的方法;
2.我們項目中有的是用的.netframework3.5 有的是用的2.0,但是其實這2個版本沒有本質上的區別,3.5是在2.0的基礎上擴展的,只有到了4.0是重新搞的,所以我覺得應該不是我項目架構使用框架的問題;
3.去看了一下正式伺服器上看了,裝的也有.netframework 3.5 sp1,這個問題也先排除;
4.問了同事,項目中沒有用Maxtocode進行代碼混淆,這個問題也先排除;
5.現在似乎沒有什麼比較好的辦法去解決這個問題了,然後就又想到為什麼不把源碼重新編譯再把dll發佈試一下呢,然後就這樣重新編譯了源碼發佈之後就沒有這個錯誤了;
四、我的項目中出現這個錯誤,應該就是編譯的過程中出現問題了。如果遇到這樣的問題的話,不妨先試著重新編譯一下源碼再發佈一下。
堅持原創!
轉載請註明出處:https://www.cnblogs.com/Infancy/p/9647049.html