我需要访问要从 WCF 服务返回给客户端的 HTTP 响应标头。访问 HTTPContext 很容易(通过 HttpContext.Current.Response),但是当 StatusCode 已经设置时(例如,如果状态为 500),最后执行的事件/扩展/行为是什么?
编辑:消息检查器在这里似乎不是一个好的解决方案,因为在它们运行时,状态代码尚未设置。(至少在我的审判中是这样的)
我需要访问要从 WCF 服务返回给客户端的 HTTP 响应标头。访问 HTTPContext 很容易(通过 HttpContext.Current.Response),但是当 StatusCode 已经设置时(例如,如果状态为 500),最后执行的事件/扩展/行为是什么?
编辑:消息检查器在这里似乎不是一个好的解决方案,因为在它们运行时,状态代码尚未设置。(至少在我的审判中是这样的)
您可以访问 上的所有标题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("-------------------------------------------------------");
看这里
控制标头的最简单方法是使用消息合约。
使用消息检查器在服务端收到消息后立即对其进行监视。
在极端情况下,如果您对任何其他标准路由都不满意,您可以使用 POX(Plain Old XML)类型的操作来处理原始 XML 消息。