2009-10-27 92 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()会解决问题。