当前位置:首页 > 博客人生 > 技术分享

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

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

发布时间:2023-03-27 作者:小沈子 分类: C#

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

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

这是在网上找的解决方法:

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

        2 、如果是已发布的站点 

        Global.asax 不执行 Application_Start 问题

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

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

        如果是未编译站点。

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

然而却并没有什么卵用。

静下心来思考:

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

image.png

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

总结:

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

image.png



上一篇: 服务器iis配置mime类型导致访问图片地址出现乱码(500错误)


下一篇: 如何处理:无法使用虚拟目录密码作为用户 administrator(或其他用户) 在本地登录到(发布文件路径)