解决vs2005 经WebDeployment发布后 global.asax 事件不启动
最近在做一个项目,需要在Appliction_Start启动时自动调度一些任务去运行。使用的编辑器是VS2005,XP系统,本地编译测试都很成功。将站点使用WebDeployment发布,并上传到Win2003服务器,发现Application_Start事件没有启动(我做了启动日志记录,发现日志为空)。
网上搜索了很多办法,一一去试都没有解决。据说有个临时解决办法,我还没有去试。
临时解决办法:
在编译网站的时候,把global.asax文件从项目中排除,再编译居然问题解决了.
发布的时候直接把golbal.asax文件copy到项目的根目录中,
如果哪位高手知道原因,请告诉在下一声.
看了老外的文章,试了下下面的办法,发现可以通过:
1、使用WebDeployment发布站点并获得名为一个“站点名_deploy”的子项目,一般我们就直接编译了,现在改改;
2、右键点该项目-->属性-->配置属性-->compilation-->将“allow this precompiled site to be updatable”前面的勾去掉;
3、生成项目并获得编译后的内容,这时候你到编译好的项目里面的bin目录下可以看到很多的".compiled"的文件,把该目录下的所有文件都直接上传就OK。
4、在站点根目录下还有一个“PrecompiledApp.config”文件,我也一并传上去了。
5、由于bin目录下一旦有更新,站点会自动重新启动。而且如果要触发Application_Start事件,从静态页启动不了,必须打开动态页,还好我的首页就是“index.aspx”,直接输入地址,等待几秒钟站点重新启动,然后查看日志,事件成功被触发!!