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事件,有什么想法可以检查什么,在哪里搜索线索?

Azure网站中的错误处理程序不会记录所有异常

我已经成功地在本地机器上复制了相同的行为,并添加了以下设置:

<customErrors mode="On">

只要RemoteOnly模式是默认模式,我就不会在本地开发机器上看到问题。不确定原因,但当启用customErrors时,一些异常没有通过http处理程序记录。