检查客户端上 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做同样的事情(
Visual Studio似乎在附加调试器时创建了这个。
if (!properties.ContainsKey(HttpRequestMessageProperty.Name))
properties.Add("httpRequest", new HttpRequestMessageProperty());
来源:属性 httpRequest' 不存在