Asp.net

為什麼 Global.asax 事件沒有在我的 ASP .NET 網站中觸發?

  • November 3, 2021

我一直在針對 Cassini(內置 Web 開發伺服器)而不是針對 IIS 開發 ASP .NET 3.5 Web 應用程序。

在我的 Global.asax 文件中的 Application_Start 事件處理程序中,我有一些程式碼記錄了網站已啟動的事實。這一切都適用於卡西尼。

由於使用 IIS6 將站點部署到測試伺服器上的虛擬目錄,我發現沒有寫入日誌條目,因此我得出結論 Application_Start 處理程序沒有觸發。

然後我嘗試刪除虛擬目錄並直接從測試伺服器上的網站根目錄執行該站點,但這沒有任何區別 - 仍然沒有應用程序啟動的日誌條目。

我知道無論我的部署環境如何,這些事件都應該觸發,有沒有人知道這裡出了什麼問題?

如果您向您的應用程序發出請求,那麼“Application_Start”會觸發嗎?我不相信它會在第一個請求提出之前開始。

我遇到了類似的問題,我為此苦苦掙扎了好幾天。最初的問題是其他問題 - 未在應用程序的 EndRequest 處理程序中設置 cookie。最後我以某種方式設法意識到,問題實際上是事件根本沒有被觸發。花了一些時間才發現這一點,因為我的機器上一切正常。但在生產伺服器上 - 安靜得像墳墓。

我只是寫這個,因為我真的希望至少能拯救一個人。

問題的真正原因是生產伺服器上缺少 global.asax 文件

global.asax 文件存在於我的電腦上,因為開發環境位於那裡。我準備了一個部署 bat 文件,它從開發文件夾中復製文件,刪除不必要的文件並製作一個包。好吧 - global.asax 文件在該腳本中被標記為刪除。開始部署後,所有問題都消失了。

我希望我有所幫助。

引用自:https://stackoverflow.com/questions/1028187