确定服务器上正在使用哪个wcf端点

时间:2011-02-08 14:55:57

标签: .net wcf wcf-endpoint

我有一个使用两个端点公开服务的wcf服务。一个端点用于Web服务调用,而另一个端点用于休息。

有没有办法确定从哪个端点调用服务器功能?

2 个答案:

答案 0 :(得分:15)

实际上,与我的想法相反 - 实际上很容易找出调用服务的端点。在您的服务方法中,添加以下代码行:

OperationContext oc = OperationContext.Current;

if(oc != null)
{
    string wasCalledOn = oc.EndpointDispatcher.EndpointAddress.Uri.ToString();
}

但正如我所说:我会非常明智地使用它并且“防御性地” - 不要根据调用方法的端点来改变服务行为 - 这将是非常糟糕的设计!

我尝试了几个SOAP端点 - 不是100%确定如何处理REST(但很可能是相同或非常相似) - 尝试一下!

但是对于日志记录,这应该可以正常工作!

答案 1 :(得分:1)

取消博客条目here

  

你只需要看一下   通道上的LocalAddress   当前的操作上下文   方法:

OperationContext.Current.Channel.LocalAddress