检查客户端上 WCF 调用的 HttpWebRequest

本文关键字:HttpWebRequest 调用 WCF 客户端 检查 | 更新日期: 2023-09-27 18:34:41

我正在使用 WCF 客户端代理来调用 Web 服务。 我正在使用IClientMessageInspector为每个请求添加日志记录。 我想从底层 HTTP 消息中获取信息,并发现我可以通过以下方式获取它:

public class WCFLoggingInspector : IClientMessageInspector
{        
    public object BeforeSendRequest(ref Message request, IClientChannel channel)
    {
        var httpRequest = (HttpRequestMessageProperty)request.Properties[HttpRequestMessageProperty.Name];
        var method = httpRequest.Method;
        return null;
    }
}

在调试器中单步执行时,这工作正常。 但是,正常运行时,我从属性索引器收到错误:"名称为'httpRequest'的属性不存在">

谁能解释一下这里发生了什么,或者另一种获取 HttpRequest 的方法? (我也在为AfterReceiveReply做同样的事情(

检查客户端上 WCF 调用的 HttpWebRequest

Visual Studio似乎在附加调试器时创建了这个。

if (!properties.ContainsKey(HttpRequestMessageProperty.Name))
                properties.Add("httpRequest", new HttpRequestMessageProperty());

来源:属性 httpRequest' 不存在