我使用Visual Studio 2008发布我的asp.net网站。当我在服务器上启动网站(Windows 2008服务器)时,我注意到global.asax中的代码没有运行。我的Global.asax正文类似于:

<%@ 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>

已编译的网站bin文件夹中有一个App_global.asax.dll,但这似乎没有帮助。

我是否缺少配置选项?删除App_global.asax.dll并使用原始的global.asax与预编译的网站工作正常。

有帮助吗?

解决方案

我找到的唯一答案是在编译的输出文件夹中包含global.asax(带逻辑)。

其他提示

我遇到了类似的问题,并设法通过从我们的开发服务器上的网站根文件夹中删除PrecompiledApp.config文件来解决它。

我认为从Visual Studio发布时可能已将其传输到服务器。

这篇文章中有一些解决方案可以解决某些人的问题,但不是所有的。你可以尝试一下,看看它是否适合你。

确保项目中包含所有必需品dll,这也是一个好主意,编译项目,比较dll版本,如果这些不匹配,请手动将它们替换到每个文件夹中,这样你就可以了确保你运行的是正确的Dlls版本。

这对我有用。

在.NET 4和IIS 7.0下发布预编译的ASP.NET项目后,我遇到了类似的问题。全局应用程序未在应用程序启动时运行,然后将PrecompiledApp.config放入服务器后,问题解决了,编译后的名为App_global.asax.dll的Global.asax文件进入生命周期的前端并运行。

我认为将Application_Start()重命名为Application_OnStart()可以解决问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top