sách gpt4 ai đã đi

asp.net - Global.asax 不为发布版本触发

In lại 作者:行者123 更新时间:2023-12-03 18:24:56 33 4
mua khóa gpt4 Nike

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

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

为什么它适用于 Debug 版本而不适用于 Release 版本?我已经玩了几个小时了,这让我发疯了。

Cảm ơn trước

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

1 Câu trả lời

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

当我们的构建停止工作时,我们为这个问题挠了几个小时。事实证明,在强制性的内务管理模式下,我从源代码管理中删除了这个文件,因为我认为它是多余的。重新添加它解决了问题。

关于asp.net - Global.asax 不为发布版本触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/811005/

33 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com