微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – Global.asax没有为Release版本触发

我们的一个应用程序有一个机制,可以在遇到特定级别的异常时自动通过电子邮件发送帮助台.一个特殊的例外,一个NullReferenceException,导致一些问题,我相信它是由IIS回收和丢失会话引起的.
为了证明这一点,我想在应用程序启动/停止/回收时记录,并在global.asax文件添加了一些代码来执行此操作.在调试模式下运行时,日志消息被写出并且一切都很好.当我切换到Release build时会出现问题,它会触发Web部署项目构建到IIS中配置的文件夹.

当我导航到应用程序时,未调用ApplicationStart方法,因为未创建日志文件且未更新事件日志.当我重新启动IIS时,ApplicationEnd也会发生同样的情况,即不会创建日志.

为什么它适用于Debug版本而不适用于Release版本?我一直在踢这几个小时,这让我疯了.

提前致谢

** [编辑]:我不是100%确定发生了什么,但它现在似乎正在发挥作用.我想也许我们用于日志记录的程序集可能在ApplicationStart执行时没有加载,所以我删除了所有代码,只是在方法中创建了一个文本文件.看哪,文件已经创建了!所以我添加一个if(logger!= null)类型检查以尝试输出一些诊断但没有写出任何内容.所以我尝试了一个try / catch并写了一个空白文件“exception.txt”,如果抛出异常但仍然没有创建文件 – 尽管生成了事件日志和预期的日志文件!我糊涂了! **

解决方法

我们遇到了这个问题,并且缺少precompiledApp.config文件就是解决方案.如果没有它,global.asax事件不会在IIS6下使用ISAPI过滤器触发,并且rewritten.aspx方法记录为例如在blog.codeville.net上.我们使用msbuild在部署之前预编译站点.

当我们的构建停止工作时,我们在这个问题上摸不着头几个小时.事实上,在强迫性的管家模式中,我已经从源代码控制中删除了这个文件,因为我认为它是多余的.将其添加回来修复问题.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐