C# Web API记录请求、响应,但跳过文件上载

C# Web API记录请求、响应,但跳过文件上载,c#,asp.net-web-api,C#,Asp.net Web Api,我的日志记录过程有一些问题 protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { WebApiLogin log = new WebApiLogin(); string clientToken = ""; str

我的日志记录过程有一些问题

        protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {

        WebApiLogin log = new WebApiLogin();
        string clientToken = "";
        string clientAddress = "";
        string requestUri = "";
        string requestBody = "";
        string responseBody = "";
        HttpResponseMessage result = null;

        try
        {

            clientToken = request.Headers.GetValues("Token").FirstOrDefault();
            requestUri = request.RequestUri.AbsoluteUri;
            clientAddress = HttpContext.Current.Request.UserHostAddress;

            // log request body
            requestBody = await request.Content.ReadAsStringAsync();

            // let other handlers process the request
            result = await base.SendAsync(request, cancellationToken);

            if (result.Content != null)
            {
                // once response body is ready, log it
                responseBody = await result.Content.ReadAsStringAsync();
                // log full
                log.Log(clientToken, clientAddress, requestUri, requestBody, responseBody);
            }
            else
            {
                // log partial
                log.Log(clientToken, clientAddress, requestUri, requestBody);
            }

        }
        catch (Exception ex)
        {
            log.Log(clientToken, clientAddress, requestUri, requestBody, ex.Message);
        }

        return result;
    }
在这一行:

var httpRequest = HttpContext.Current.Request;
由于HttpContext为null,我出现了“未设置对象引用”错误。我猜是由于log方法上的异步调用之间的延迟

停止日志方法“null reference”错误停止

有没有办法解决这个问题,我是说,记录json和文件上传

如果没有,是否可以在涉及文件上载时跳过此日志记录


提前感谢,

我不了解这些方法之间的关系。我错过什么了吗?我也没有!但是,当启用此日志方法时,HttpContext.Current.Request为null,并且当我注释时,覆盖方法工作正常。所以我猜异步操作会把我的上传程序搞砸。我不明白这些方法是如何联系在一起的。我错过什么了吗?我也没有!但是,当启用此日志方法时,HttpContext.Current.Request为null,并且当我注释时,覆盖方法工作正常。所以我想异步操作会把我的上传程序搞砸。
var httpRequest = HttpContext.Current.Request;