国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Asp.net1.1升級到2.0遇到的一些問題總結

2019-11-18 17:00:29
字體:
來源:轉載
供稿:網友

周末下了點狠心,決定把項目升級到2.0平臺,因為VS2003和2005可以并存,所以問題還是比較容易處理的,裝上PRo版的2005,打開原來的項目,自動出現升級向導。項目里包含7個子項目,所有的邏輯和顯示都是在后臺項目里實現的,前臺的Web項目里每個文件里都只是實現了一個對后臺方法的調用,而且后臺也沒有用到任何高級的語法,因此升級非常平滑。
總結了一下,Web項目里的項目文件被刪除了。原來兩個不相干的aspX文件也被考慮進編譯過程了。編譯了一下,上傳到服務器上,報錯。后來發現新編譯的項目沒有Web項目的Dll了,而服務器的目錄上還留著。結果造成內部引用的混亂。刪除那個老的Web項目的Dll,OK了。
然后打算試一下發布模式,用VS2005的生成菜單項目里的發布網站功能,設置發布到的目錄,選項設成不允許更新,它居然把Web目錄下所有的東西復制了一遍出來,所以編譯過程很慢。編譯完成以后在bin目錄下生成了一堆東西,我以為把這些東西拷到服務器上就可以不用干凈編譯了。結果發現第一次訪問頁面的時候,還是會出現csc進程。整個網站切換過來以后,還是同樣出現了一堆的csc進程,不過編譯過程比原來快了一點。
另外出現的一個比較嚴重的問題,程序似乎過一會就會自動重啟一下,導致再編譯一次,而且后來發現服務器上出現了一個錯誤窗口,說是w3wp.exe進程出現錯誤,是否要進行調試。選擇取消以后,w3wp.exe就自動重啟了,于是又開始了新一輪的重新編譯。這個過程出現了三次,嚇的我趕緊切換回去1.1的版本。到事件查看器里看了一下,里面一堆的未處理異常,基本上都是值為空的錯誤。奇怪了,在1.1的時候沒有出現過問題啊,而且代碼沒有進行改變。
后來查到一篇文章(中文的似乎還沒有人提到過),http://www.eggheadcafe.com/articles/20060305.asp,在2.0里面對未處理的異常的處理方式跟1.1有很大的不同,1.1會忽略它,除非影響頁面生成。而2.0會導致進程報錯,直接影響整個網站運行。聽上去是個很嚴重的問題,但是這樣似乎更合理,否則程序員會一直忽略掉這個錯誤。然而因為這個問題,網站無法切換也是個很嚴重的問題,因此,還是需要一個平滑過度的方法。上文提到了這個方法,就是自己寫一個HttpModule,處理所有的未處理異常,并且可以把異常信息記入系統事件,有利于程序員進行處理。并且上文也提供了這個HttpModule的源碼和二進制文件下載,還包含Demo的WebApp。
今天終于弄懂了2.0的預部署發布的編譯方式,用VS的發布網站的方式是不對的,一定要用aspnet_compiler.exe來手動編譯,而且它的編譯過程是針對網站的實際設置的。也就是說,必須把Web項目的內容上傳到網站上去,在IIS里面設好網站的路徑,然后使用aspnet_compile進行編譯,可以進行本地編譯,這個過程實際上它是把生成的dll放到C:/Windows/Microsoft.Net里面的緩存目錄里的,也就是跟用戶實際訪問頁面的時候csc.exe生成的是完全一致的。經過這一部,用戶兩次訪問的時候就不會有任何編譯動作發生了。
好累。順便想到一個無縫切換的方式,分別保留兩個網站,指向兩個不同的目錄,其中一個是沒有主機頭的,另一個是有主機頭的,用來更新的。更新這個有主機頭的網站以后,使用aspnet_compiler編譯一下,然后切換兩個網站的主機頭,這樣新訪問的用戶就會被導向這個新編譯過的網站,而用戶不會感覺到任何延遲。下次再更新另外一個站點就可以了。

http://m.survivalescaperooms.com/unfish/archive/2006/09/10/500230.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高清| 喀喇沁旗| 雅江县| 青州市| 蛟河市| 湖南省| 新巴尔虎右旗| 来宾市| 黄冈市| 正阳县| 西畴县| 盖州市| 光泽县| 青州市| 桐梓县| 茌平县| 临安市| 丽江市| 鹤峰县| 涿鹿县| 武汉市| 衡阳县| 两当县| 安丘市| 斗六市| 衡东县| 吉林市| 句容市| 丰都县| 潼南县| 全椒县| 昌邑市| 新源县| 昭通市| 兴安县| 灯塔市| 江山市| 宜昌市| 陆良县| 阳西县| 栾川县|