2009-10-27 94 views
5

我用Visual Studio 2008發佈了我的asp.net網站。當我打開服務器上的網站(Windows 2008服務器)時,我注意到global.asax中的代碼沒有運行。我的Global.asax身體是類似於:Global.asax無法加載預編譯的asp.net網站

<%@ Application Language="C#" %> 
<script runat="server"> 
    protected void Application_Start() 
    { 
     // Initialize some site settings like a task scheduler 
    } 

    protected void Application_End(object sender, EventArgs e) 
    { 
     // Perform some clean up code 
    } 
</script> 

有一個App_global.asax.dll在編譯網站bin文件夾,但似乎並沒有幫助。

是否有配置選項,我錯過了?刪除App_global.asax.dll並在預編譯的網站中使用原始的global.asax可以正常工作。

回答

5

我發現的唯一答案是在編譯後的輸出文件夾中包含global.asax(帶邏輯)。

+0

我真的很感興趣,請你解釋一下關於如何在編譯後的輸出文件夾中包含global.asax的更多細節。 – 2012-11-14 05:11:30

1

this post有一些解決方案可以解決某些人的問題,但不是全部。你可以試試看看它是否適合你。

+0

我知道這是8年後,但我仍然有這個問題。你能解決它嗎? – 2017-10-24 20:44:58

1

請確保您的項目中包含所有必需品dll,這也是一個好主意,可以編譯項目,比較dll版本,如果這些不匹配,請手動將它們替換爲每個文件夾,以便您可以確保你正在運行正確的Dll版本。

這對我有效。

4

我有一個類似的問題,並設法解決它由從我們的開發服務器上的網站的根文件夾刪除PrecompiledApp.config文件。

我認爲這可能是從Visual Studio發佈時轉移到服務器。

+0

在我的例子VS2012中,發佈的網站同時包含global.asax和app_global.dll,但缺少precompiledapp.config文件(因爲我不知不覺地刪除了)。添加這個配置文件解決了我的問題。 – Esen 2013-02-02 14:06:13

1

在.NET 4和IIS 7.0下發布預編譯的ASP.NET項目後,我遇到了類似的問題。全局應用程序未在應用程序啓動時運行,然後在將PrecompiledApp.config放置到服務器後,我的問題得到解決,編譯的Global.asax文件名爲App_global.asax.dll進入生命週期並正在運行。

0

我認爲將Application_Start()重命名爲Application_OnStart()會解決問題。