我已注册一个全局异常处理程序,它会触发并包含我需要的所有信息,但Request.Content除外,它总是为空的…我需要在调试时传入的值… Public class MyExceptionLogger : ExceptionLogger { public override v
Public class MyExceptionLogger : ExceptionLogger { public override void Log(ExceptionLoggerContext context) { try { ... other code var methodName = context.Request.Method.ToString(); var errorUri = context.Request.RequestUri.ToString(); var errorMessage = context.Exception.Message; var errorStackTrace = context.Exception.StackTrace.ToString(); var payload = context.Request.Content.ReadAsStringAsync().Result; ..... other code } } }
从全局错误处理程序检索Request.Content的正确方法是什么?在上面的代码中,Content属性已经被模型绑定器读取,因此始终为空.
如何从异常中始终获取已发布的正文?
我应该在自定义MessageHandler中检索并保存已发布的正文吗?
谢谢
格雷格
var payload = context.Request.Content.ReadAsStringAsync().Result;
并且没有它…当模型粘合剂读取缓冲区时,缓冲区将不会被清空,因为它现在总是在我的异常记录器中…我不知道这是设计还是什么,但它令人生气!