1. 程式人生 > >關於Global.asax檔案不被執行的問題

關於Global.asax檔案不被執行的問題

  昨天在網站中新增一個網站計數器,用到了Global檔案,用Application去儲存計數,在Application的Start方法中首先取出表中原來的資料,在Session的Start方法中進行計數,寫回到表中,對計數進行儲存。其實本來很簡單的一個計數,確花掉了我很長時間。因為我在本地除錯的過程中一切正常,但是當釋出到外網時計數卻是空.通過多次測試,確定是因為檔案沒有被執行。原因大概有以下幾點:

1 web應用的根目錄沒有被設定ASPNET和Network Services許可權,經過仔細分析研究,Global.asax只有在資料夾配置了Network Services的讀寫許可權時才能生效。(寫許可權必須開,可能是因為Global.asax運行了log4net,要寫入日誌檔案。

2 IIS編譯是按照頁面編譯,而要執行Global.asax需要整個網站編譯。如果頁面編譯通過而網站編譯未通過,則Global.asax裡面的程式碼無法載入。

解決方法:

1 給web應用的根目錄設定ASPNET和Network Services許可權

2 如果是已釋出的站點 
Global.asax 不執行 Application_Start 問題


釋出的站點 根目錄有PrecompiledApp.config  造成衝突  刪除後可以正常執行 

PrecompiledApp.config 是預編繹網站 生成的檔案 一般情況用不到


如果是未編譯站點。


在vs中把asp.net Development Server 停止後在重新啟動。