C# 无法访问已释放的对象CopyToASync(毫秒)
我刚打了个电话,我有请求和回复。我有一种方法,在这种方法中,我试图在我的数据库中记录请求和休息主体,因为我只是在构建req和响应主体C# 无法访问已释放的对象CopyToASync(毫秒),c#,asp.net-mvc,C#,Asp.net Mvc,我刚打了个电话,我有请求和回复。我有一种方法,在这种方法中,我试图在我的数据库中记录请求和休息主体,因为我只是在构建req和响应主体 internal static async Task<string> GetBodyForLoggingAsync(this HttpRequestMessage request) { return await GetBodyForLoggingAsync(request.Content); } private static async Ta
internal static async Task<string> GetBodyForLoggingAsync(this HttpRequestMessage request)
{
return await GetBodyForLoggingAsync(request.Content);
}
private static async Task<string> GetBodyForLoggingAsync(HttpContent content)
{
if (content == null)
{
return null;
}
string requestBody = null;
var contentType = content.Headers.ContentType;
if (contentType == null || _contentTypesWhereBodyIsLogged.Contains(contentType.MediaType))
{
try
{
Debug.WriteLine(" ---- GETTING BODY CONTENT");
using (var ms = new MemoryStream())
{
try
{
await content.CopyToAsync(ms).ConfigureAwait(false);
ms.Seek(0, SeekOrigin.Begin);
using (var sr = new StreamReader(ms))
{
requestBody = sr.ReadToEnd();
}
}
catch (Exception ex)
{
var test = ex;
}
}
}
catch (Exception ex)
{
var test = ex;
}
}
}
内部静态异步任务GetBodyForLoggingAsync(此HttpRequestMessage请求)
{
返回等待GetBodyForLoggingAsync(request.Content);
}
专用静态异步任务GetBodyForLoggingAsync(HttpContent)
{
if(content==null)
{
返回null;
}
字符串requestBody=null;
var contentType=content.Headers.contentType;
if(contentType==null | | | | u contenttypeswwherebodyislogged.Contains(contentType.MediaType))
{
尝试
{
Debug.WriteLine(“----获取正文内容”);
使用(var ms=new MemoryStream())
{
尝试
{
wait content.CopyToAsync(ms.configurewait(false);
Seek女士(0,SeekOrigin.Begin);
使用(var sr=新的StreamReader(ms))
{
requestBody=sr.ReadToEnd();
}
}
捕获(例外情况除外)
{
var检验=ex;
}
}
}
捕获(例外情况除外)
{
var检验=ex;
}
}
}
我在content.CopyToAsync()方法中遇到错误,无法访问POST和修补程序调用中的已释放对象,如果我从邮递员处执行相同的调用,使其获取,则不会出现此错误。我知道get调用中没有body的用法,但我只是在检查。很难告诉上下文您正在处理中的HttpContent。您可以发布堆栈跟踪吗?如果我不得不猜测的话,您的日志记录是在框架处理了请求和响应之后发生的。如果是这种情况,您希望将中间件进一步向上移动。对其进行响应并记录日志,这仅在请求时发生。这些问题可能重复:没有我的代码在我尝试复制或读取任何带有disposed object错误的内容时抛出错误。对此有任何更新吗?