我需要访问要从WCF服务返回到客户端的HTTP响应头。访问HTTPContext很容易(通过HttpContext.Current.Response),但是当StatusCode已经设置时(例如,如果状态是500),最后执行的事件/扩展/行为是什么?
编辑:消息检查员在这里似乎不是一个好的解决方案,因为在他们运行时,状态代码尚未设置。 (至少在我的审判中就是这种情况)
答案 0 :(得分:0)
控制Headers的最简单方法是使用Message contract。
在服务端收到消息后立即使用Message Inspectors监控消息。
在极端情况下,如果您对任何其他标准路由不满意,可以使用POX(Plain Old XML)类型的操作来处理原始XML消息。
答案 1 :(得分:0)
您可以访问WebOperationContext.Current.IncomingRequest
上的所有标题,如下所示:
IncomingWebRequestContext request = WebOperationContext.Current.IncomingRequest;
WebHeaderCollection headers = request.Headers;
Console.WriteLine("-------------------------------------------------------");
foreach (string headerName in headers.AllKeys)
{
Console.WriteLine(headerName + ": " + headers[headerName]);
}
Console.WriteLine("-------------------------------------------------------");
请参阅here