2011-08-24 76 views
2

時不費一槍我研究了很多,但一無所獲......發佈網站的時候Application_Start事件發表

Application_Start事件不點火。但是它在localhost中正常工作。發佈後,我得到了App_global.asax.dll和App_GlobalResources.compiled在Bin文件夾中,並且在根目錄下也有PrecompiledApp.config。

回答

4

Application_Start事件在應用程序第一次運行時觸發。它與重新啓動機器或重新啓動IIS無關。您是否嘗試製作新的示例應用程序,並測試該應用程序的Application_Start事件是否運行良好。如果是的話,那麼你的應用程序配置已經被破壞了。

也許重新啓動您的應用程序池可以幫助您。

+0

感謝Masoud的回覆。是的,它在localhost上運行良好,但一旦網站發佈,事件就不會觸發。任何線索.. –

+0

什麼是你的Windows版本? –

+0

Windows Server 2003企業版 –

0

可能是這個事件按預期被觸發,但是由於您正在執行預編譯的Web,並且在發佈模式下,沒有調試符號 - 在嘗試遠程調試應用程序的情況下。

另一個可能的原因是它正在解僱,但在Application_Start處理程序中引發了一些異常,並且因爲這在每個應用程序生命週期中被調用一次,所以您需要回收應用程序池或重新啓動整個IIS。

+0

沒有這樣的例外。一旦控件進入Application_Start事件中,我將登錄文本文件。問題在於控制本身並沒有來到這個事件。考慮我的scenerio:保護無效Application_Start(對象發件人,EventArgs e) { logfile.ErrorLog(「UserErrorLog \\ UserErrorLog.txt」,「Application_Start方法執行在」+ System.DateTime.Now); DoSomeWork(); logfile.ErrorLog(「UserErrorLog \\ UserErrorLog.txt」,「Application_Start方法執行結束於」+ System.DateTime.Now); } –

+0

我不能幫你解決這個有限的信息,我試圖給你提供基本的提示。 –

+0

這是我想要做的示例代碼。在本地機器上完美工作,但在調試模式下發布時,Application_Start事件不會觸發。我檢查是否有任何異常,但不幸的是沒有例外。保護無效Application_Start(對象發件人,EventArgs e){logfile.ErrorLog(「UserErrorLog \\ UserErrorLog.txt」,「Application_Start方法執行在」+ System.DateTime.Now);做一些工作(); logfile.ErrorLog(「UserErrorLog \\ UserErrorLog。txt「,」Application_Start方法執行結束於「+ System.DateTime.Now);}'請問我是否不清楚 –

0

您的代碼,告訴其他意見:

protected void Application_Start(Object sender, EventArgs e) { 
    logfile.ErrorLog("UserErrorLog\\UserErrorLog.txt", "Application_Start method executed at " + System.DateTime.Now); 
    DoSomeWork(); 
    logfile.ErrorLog("UserErrorLog\\UserErrorLog.txt", "Application_Start method execution ends at " + System.DateTime.Now); 
} 

UserErrorLog\\UserErrorLog.txt將在正常的IIS設置有問題,它會嘗試某處內%SYSTEMROOT%\System32\Inetsrv這是IIS的執行目錄寫。您需要指定絕對路徑(C:\Logs\...)或使用HostingEnvironment.MapPath來解析基於應用程序的路徑(HostingEnvironment.MapPath("~/App_Data/Logs/...")