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

时间:2013-07-10 12:41:32

标签: c# exception azure

我有一个使用StackExchange.Exceptional记录异常的网站。问题是,它不会记录所有异常,例如在我的开发机器上。

如果它不会记录任何异常,我会认为某些配置/权限不适用于Azure网站,可能是模块未加载/工作,但是例如如果我错误地输入控制器操作,我会收到异常记录:

  

在控制器'Acme.Controllers.AccountController'上找不到公共操作方法'Logi'。

我尝试使用发布配置localy运行网站,它没有问题。

据我所知,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事件,任何想法要检查什么,在哪里搜索线索?

1 个答案:

答案 0 :(得分:0)

我设法在本地计算机上复制了相同的行为并添加了以下设置:

<customErrors mode="On">

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