5

我使用 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 与预编译网站一起使用可以正常工作。

4

6 回答 6

6

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

于 2009-11-19T02:28:51.023 回答
4

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

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

于 2012-07-17T12:10:07.500 回答
1

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

于 2009-10-28T04:18:22.347 回答
1

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

这对我有用。

于 2010-11-06T07:43:08.083 回答
1

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

于 2013-10-02T11:46:36.507 回答
0

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

于 2013-12-11T05:45:13.173 回答