NEWS新闻

更多最新新闻

asp.net为何Global.asax文件不被执行?

今天在网站中添加一个定时器,用到了Global文件,用Application的Start方法进行操作。其实原理很简单,但是确花掉了我很长时间。因为我在本地调试的过程中一切正常,但是当发布到外网时计数却是空.通过多次测试,确定是因为文件没有被执行。原因大概有以下几点:


    1, web应用的根目录没有被设置ASPNET和Network Services权限,经过仔细分析研究,Global.asax只有在文件夹配置了Network Services的读写权限时才能生效。(写权限必须开,可能是因为Global.asax运行了log4net,要写入日志文件。


    2, IIS编译是按照页面编译,而要运行Global.asax需要整个网站编译。如果页面编译通过而网站编译未通过,则Global.asax里面的代码无法加载。


解决方法:

    1, 给web应用的根目录设置ASPNET和Network Services权限


    2, 如果是已发布的站点 ,Global.asax 不执行 Application_Start 问题

          发布的站点 根目录有PrecompiledApp.config  造成冲突  删除后可以正常运行 

          PrecompiledApp.config 是预编绎网站 生成的文件 一般情况用不到


如果是未编译站点。

        在vs中把asp.net  Development Server 停止后在重新启动。