网站部署到IIS后 Global.asax代码不执行究竟是为什么?
正在加载···
AI摘要
HunYuan-Lite
Global.asax 用过的人都知道,记录点击量,伪静态非常好用,还可以定义计时器,自动执行函数! 但是有没有人遇到这种情况,发布到服务器后,Global.asax跟禁用一样,里面的代码都不走了,根本就没执行Global.asax这个文件。
然后我在网上查找了很多解决方案,简直五花八门的都有:
网上找的解决方法:
- 给web应用的根目录设置ASPNET和Network Services权限
- 如果是已发布的站点 Global.asax 不执行 Application_Start 问题
- 发布的站点 根目录有PrecompiledApp.config 造成冲突 删除后可以正常运行
- PrecompiledApp.config 是预编绎网站 生成的文件 一般情况用不到
- 如果是未编译站点。
在vs中把asp.net Development Server 停止后在重新启动。
然而却并没有什么卵用。
静下心来思考:
正常网站发布除了Global.asax以外,在编译的时候bin文件夹下会生成一个dll文件:App_global.asax.dll。
这些文件都会一起打包部署到服务器上,网站才能正常运行。经过一一排查后发现,要执行Global.asax文件,必须还要将这个文件一起打包放到服务器里面:App_global.asax.compiled
,没有这个文件,就不会执行Global.asax文件,所以当我把这个文件复制粘贴到服务器上之后,Global.asax文件就被执行了。这是一个小小的细节,当时没有注意到,其实很简单的一个问题。
总结:
要执行Global.asax文件,必不可少的两个文件不能丢【App_global.asax.compiled
、App_global.asax.dll
】,大家如果也遇到这种情况,赶快去检查一下吧~
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 码农观测站!
评论