我使用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与预编译的网站工作正常。
答案 0 :(得分:5)
我找到的唯一答案是在编译的输出文件夹中包含global.asax(带逻辑)。
答案 1 :(得分:4)
我遇到了类似的问题,并设法通过从我们的开发服务器上的网站根文件夹中删除PrecompiledApp.config文件来解决它。
我认为从Visual Studio发布时可能已将其传输到服务器。
答案 2 :(得分:1)
this post中有一些解决方案可以解决某些人的问题,但不是全部。你可以尝试一下,看看它是否适合你。
答案 3 :(得分:1)
确保项目中包含所有必需品dll,这也是一个好主意,编译项目,比较dll版本,如果这些不匹配,请手动将它们替换到每个文件夹中,这样你就可以了确保你运行的是正确的Dlls版本。
这对我有用。
答案 4 :(得分:1)
在.NET 4和IIS 7.0下发布预编译的ASP.NET项目后,我遇到了类似的问题。全局应用程序未在应用程序启动时运行,然后将PrecompiledApp.config放入服务器后,问题解决了,编译后的名为App_global.asax.dll的Global.asax文件进入生命周期的前端并运行。
答案 5 :(得分:0)
我认为将Application_Start()重命名为Application_OnStart()可以解决问题。