

.NET网站global.asax 编译后上传无效的解决方法,最近在vs2005开发项目中使用了global.asax文件,用了Session_Start事件和Session_End事件和Application_Start事件,在开发环境本地浏览正常,可是编译后发布上传到服务器后,发现这个global.asax事件不能正常触发,查了一些资料,在网上有程序爱好者发布了解决方法,给大家借鉴一下。
.NET网站global.asax 编译后上传无效的解决方法,临时解决办法:在编译网站的时候,把global.asax文件从项目中排除,再编译居然问题解决了;发布的时候直接把golbal.asax文件copy到项目的根目录中。 还有一种更牛的做法,原理是调用App_Code中的类似方法。
首先在App_Code文件夹下创建一个类Global.cs把所有Global.asax文件里面的方法都复制过去。.NET网站global.asax 编译后上传无效的解决方法,类使用partial修饰符(用来定义一个类或其它集合类可被拆分,并定义在多个类中)并且要继承System.Web.HttpApplication
写法如下:
/// <summary>
/// Global 的摘要说明
/// </summary>
public partial class Global : System.Web.HttpApplication
{
public Global()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
}
void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
}
void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
}
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
}
void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。
}
}
然后再修改一下Global.asax文件里面只要写上:<%@ Application Language="C#" Inherits="Global" %>,.NET网站global.asax 编译后上传无效的解决方法。
把内容指向刚才写的Global.cs文件就可以了。现在在全局变量里面想写什么就写什么吧。注意:此种方法如果不凑效的话,要注意两点:1、用web deployment工具编译的时候将global.asax文件排除到项目外,然后再进行编译,切记!2、网站根目录下的预编译配置文件:PrecompiledApp.config将其删掉。
.NET网站global.asax 编译后上传无效的解决方法介绍如上,通过上面的方法基本上可以解决问题,在网上还看到一种情况,由于部分虚拟主机可能是套用的子网站,当你的虚拟主机为子网站时,IIS会调用父级网站目录的Global.asax,这样也会导致global.asax 编译后上传无效。
![]() | [2011-11-23] | ECSHOP网站如何修改文章的发布时间 |
![]() | [2011-11-14] | 简析微博对网站产品营销的帮助 |
![]() | [2011-10-27] | 网站设计与视觉优化的原则 |
![]() | [2011-10-18] | 网站建设时如何设计更友好的网站url |
![]() | [2011-10-09] | 网站建设CSS样式block和inline属性介绍 |
