Azure网站中的错误处理程序不会记录所有异常
本文关键字:记录 异常 程序 网站 错误 处理 Azure | 更新日期: 2023-09-27 18:21:53
我有一个网站,它使用StackExchange.Exceptional来记录异常。问题是,它并没有像在我的开发机器上那样记录所有异常。
如果它不会记录任何异常,我会认为某些配置/权限在Azure网站上不起作用,可能是模块没有加载/起作用,但例如,如果我键入错误的控制器操作,我会记录异常:
在控制器"Acme.Controllers.AccountController"上找不到公共操作方法"Logi"。
我试过在本地使用发布配置来运行这个网站,它运行起来没有问题。
据我所知,StackExchange.Exceptional是http模块,它使用以下代码记录未处理的异常:
protected virtual void OnError(object sender, EventArgs args)
{
var app = (HttpApplication)sender;
var ex = app.Server.GetLastError();
LogException(ex, app.Context);
}
(https://github.com/NickCraver/StackExchange.Exceptional/blob/master/StackExchange.Exceptional/ExceptionalModule.cs#L36)
可能在某些情况下,在Windows Azure上它没有收到OnError事件,有什么想法可以检查什么,在哪里搜索线索?
我已经成功地在本地机器上复制了相同的行为,并添加了以下设置:
<customErrors mode="On">
只要RemoteOnly
模式是默认模式,我就不会在本地开发机器上看到问题。不确定原因,但当启用customErrors
时,一些异常没有通过http处理程序记录。