昨晚公司网站升级了ASP.NET2.0的SP1补丁包,今天发现系统频繁SQL连接不上。检查若干,才发现WEB应用程序中的Global.asax。中的代码已经无法执行。 原来网站中释放数据库连接是在该文件中。而数据库,在其他系统使用的时候,还是可以正常。只是在该网站中,运行一下就无法就又无法连接SQLSERVER了
protected void Application_EndRequest(object sender, EventArgs e)
{
...........执行释放资源的代码段
}
不过,可以使用IHttpModule接口自定义Http模块来实现同样的功能。最后决定采用如下方法修复此问题。
public class HttpModule :IHttpModule
{
public String ModuleName
{
get { return "HelloWorldModule"; }
}
// In the Init function, register for HttpApplication
// events by adding your handlers.
public void Init(HttpApplication application)
{
application.BeginRequest +=
(new EventHandler(this.Application_BeginRequest));
application.EndRequest +=
(new EventHandler(this.Application_EndRequest));
}
private void Application_BeginRequest(Object source,EventArgs e)
{
Common.SetOutLanguage();
}
private void Application_EndRequest(Object source, EventArgs e)
{
DatabaseAccess.Kill();
}
public void Dispose()
{
DatabaseAccess.Kill();
}