南希应用程序错误被 OWIN 吞噬



我有一个Nancy应用程序,我最近更新了它以使用OWIN/Katana。

出于某种原因,我的"真实"错误现在被隐藏了。

这是我收到的唯一一般错误:

等待任务

或访问其异常属性均未观察到任务的异常。结果,终结器线程重新抛出未观察到的异常。

原因:HttpException·远程主机关闭了连接。错误代码为0x800704CD。:0System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect(:0System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush((:0System.Web.HttpResponse.Flush(Boolean finalFlush, Boolean async(:0Microsoft.Owin.Host.SystemWeb.CallStreams.OutputStream.Flush((
:0System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder(
:0System.IO.StreamWriter.Dispose(Boolean disposing(
:0System.IO.StreamWriter.Close((
:0Newtonsoft.Json.JsonWriter.System.IDisposable.Dispose((
:0Nancy.Serialization.JsonNet.JsonNetSerializer.Serialize(String contentType, TModel model, Stream outputStream(
:0Nancy.Owin.NancyMiddleware+<>c__DisplayClasse.b__a(NancyContext context(
:0System.Threading.Tasks.Task.Execute((

这不是真正的错误。由于某种原因,在我更新为 OWIN 后,我真正的错误不再被记录。

我的 OWIN 初创公司只有 app.UseNancy()(没有其他中间件(。

这是我在ApplicationStartup中的错误处理程序:

pipelines.OnError.AddItemToEndOfPipeline((context, exception) => OnError(container.Resolve<ILoggingService>(), context, exception));

private static Response OnError(ILoggingService loggingService, NancyContext context, Exception exception)
{
   // log something
}

我做错了什么?我现在是否必须编写自定义中间件来处理错误?

编辑

对此进行了更新。当它发生时,它实际上会使我的网站/应用程序池崩溃。我使用的是 .NET 4.5。

事实证明,这不是南希/奥温直接的。

我正在使用的库(BugSnag(导致问题。似乎它没有正确支持 OWIN。所以我删除了那个库,问题就停止了。

最新更新