正在加载···
AI摘要
HunYuan-Lite

Global.asax 用过的人都知道,记录点击量,伪静态非常好用,还可以定义计时器,自动执行函数! 但是有没有人遇到这种情况,发布到服务器后,Global.asax跟禁用一样,里面的代码都不走了,根本就没执行Global.asax这个文件。

然后我在网上查找了很多解决方案,简直五花八门的都有:

网上找的解决方法:

  1. 给web应用的根目录设置ASPNET和Network Services权限
  2. 如果是已发布的站点 Global.asax 不执行 Application_Start 问题
  • 发布的站点 根目录有PrecompiledApp.config 造成冲突 删除后可以正常运行
  • PrecompiledApp.config 是预编绎网站 生成的文件 一般情况用不到
  1. 如果是未编译站点。

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

然而却并没有什么卵用。

静下心来思考:

正常网站发布除了Global.asax以外,在编译的时候bin文件夹下会生成一个dll文件:App_global.asax.dll。

网站部署到IIS后 Global.asax代码不执行究竟是为什么?

这些文件都会一起打包部署到服务器上,网站才能正常运行。经过一一排查后发现,要执行Global.asax文件,必须还要将这个文件一起打包放到服务器里面:App_global.asax.compiled,没有这个文件,就不会执行Global.asax文件,所以当我把这个文件复制粘贴到服务器上之后,Global.asax文件就被执行了。这是一个小小的细节,当时没有注意到,其实很简单的一个问题。

总结:

要执行Global.asax文件,必不可少的两个文件不能丢【App_global.asax.compiledApp_global.asax.dll】,大家如果也遇到这种情况,赶快去检查一下吧~

网站部署到IIS后 Global.asax代码不执行究竟是为什么?