2013-04-24 53 views
1

我现在有能够通过不同的方式来访问的.Net远程服务:.Net远程处理:在服务中知道该通话是在本地还是远程进行的?

  • 局部通过IPC信道
  • 远程通过TCP信道
  • 局部通过TCP信道

我需要知道,在我的一种服务方法中,如果调用是在本地或远程进行的(取决于许可证,我必须远程发送较小的数据)。

我找不到找到此方法的方法。

我已经定制了IServerChannelSink,我认为我可以检测到这种调用使用哪种类型的通道,如果它是TCP,请检查它是IP,但我找不到。

你对如何检查我们是否有本地电话有任何想法吗?

感谢您的帮助

回答

1

question展示了如何使用IP地址来识别客户端。因为你已经有了一个自定义的服务器通道接收器,它应该是非常简单的。

+0

是的,但在本地IPC频道的情况下,如何知道我们处于IPC频道的情况? – J4N 2013-04-24 19:35:42

+0

@ J4N如果使用IPC通道,那么'CallContext.GetData(“ClientIPAddress”)'将返回null。 – 2013-04-25 12:21:26

+0

是的,正确的(实际上它是'requestHeaders [CommonTransportKeys.IPAddress]'为空,但我明白了,我可以这样管理,谢谢! – J4N 2013-04-25 12:46:00