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

Mar*_*com 14 .net wcf wcf-endpoint

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

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

mar*_*c_s 15

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

OperationContext oc = OperationContext.Current;

if(oc != null)
{
    string wasCalledOn = oc.EndpointDispatcher.EndpointAddress.Uri.ToString();
}
Run Code Online (Sandbox Code Playgroud)

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

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

但对于日志记录,这应该工作得很好!