网站建设 郑州网站建设 网站制作 网页设计 网站设计 郑州建网站 - 爱易在线

网站地图 | 网站Tags标签 | RSS订阅 | 加入收藏
您的位置:网站首页 > 博客笔记 > 技术交流 > 正文 技术交流相关信息

Global.asax 没有 Global.asax.cs 问题解决

作者:郑州网站建设 2013/10/18 16:46:07 点击: 来源:

    在使用VS2005以后版本vs的过程中发现了一个问题,就是原来在VS2003中很好用的全局变量文件Global.ascx改变了,只剩下一个页面,文件所有代码都是写在页面上的。当我们发布Web程序的时候这个文件也没有被发布出去,致使在Global中写的代码都没有被执行。最先开始用了一个临时的解决办法就是在发布之前把ascx文件剪切掉,发布以后再复制到这个文件到发布程序的文件夹下(这个方法是利用了Framework 2.0的自动编译的机制)。但是这个方法有很多不足之处。首先是时长会忘掉把文件拷回去,写好的程序到客户那一看没法正常运行,调试很久才发现是没有Global。其次是因为Global都写在页面上,很多方法都不能正常的使用,还不能引用命名空间进来方法实例化又有问题,总之就是问题一堆啦(也不刨除本人学识浅薄不会用的可能,哈哈)。经过无数次的磨难之后终于下定决心改造一下,上网搜啊搜看到很多朋友都遇到类似的问题,都没有好的解决办法,后来无意间发现一个英文的网址(具体地址不记得了-_-),一个老外解决了这个问题,喜出望外,马上试验了一下果然不错。现在把解决方法写在博客里面备忘。 

    首先在App_Code文件夹下创建一个类Global.cs把所有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" %>

把内容指向刚才写的Global.cs文件就可以了。现在在全局变量里面想写什么就写什么吧。

 

转载自:http://hi.baidu.com/star_wei/item/37db985bdabbdccfd3e10cfa

 

 

 

分享到:

上一篇:C#解密虾米的location为真实地址

下一篇:Global.asax详解

技术交流推荐阅读

用户评论

最新博文

热门排行

推荐信息

关于爱之易| 付款方式| 联系我们| 网站地图| 网站Tags标签 | RSS订阅