我正在尝试关注这篇博文: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);
}
我试图获取远程地址的方法是AfterReceiveRequest
. 我检查了两个参数request
和channel
. 此外,这似乎channel.RemoteAddress
是它应该在的地方,但由于某种原因,该属性为空。该request
参数也是空的,但我猜那是因为我正在执行 GET 而不是 POST。
下面是我正在调用来测试它的方法的签名。
[OperationContract, WebGet( UriTemplate = "{*path}", ResponseFormat = WebMessageFormat.Json)]
string[] GetList(string path);