raf*_*ale 2 c# wcf idispatchmessageinspector
我正在尝试关注此博客文章:http://blogs.msdn.com/b/carlosfigueira/archive/2011/04/19/wcf-extensibility-message-inspectors.aspx
我的目标是以某种方式获取传入请求的远程地址,但由于某种原因,地址要么在任何参数中都无法看到,要么为空.
这是我正在实现的界面:
public interface IDispatchMessageInspector
{
object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext);
void BeforeSendReply(ref Message reply, object correlationState);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试获取远程地址的方法是AfterReceiveRequest.我检查了两个参数request和channel.此外,它似乎应该channel.RemoteAddress是它应该是,但由于某种原因该属性为空.该request参数也为null,但我猜这是因为我正在进行GET而不是POST.
下面是我正在调用以测试它的方法的签名.
[OperationContract, WebGet( UriTemplate = "{*path}", ResponseFormat = WebMessageFormat.Json)]
string[] GetList(string path);
Run Code Online (Sandbox Code Playgroud)
使用 OperationContext.Current.IncomingMessageHeaders.From
要么
(OperationContext.Current. IncomingMessageProperties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty).Address
要么
HttpContext.Current.Request.UserHostAddress(注意这个需要设置<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>)
| 归档时间: |
|
| 查看次数: |
3734 次 |
| 最近记录: |