【发布时间】:2017-09-30 10:56:53
【问题描述】:
我有一个 WCF 服务,它在 Debian 的 Mono 下运行。
我的目标是在服务中获取客户端 IP 地址。
我已经阅读了大量类似的主题,这些主题表明主要的解决方案是使用RemoteEndpointMessageProperty:
OperationContext oOperationContext = OperationContext.Current;
MessageProperties oMessageProperties = oOperationContext.IncomingMessageProperties;
var prop = oMessageProperties[RemoteEndpointMessageProperty.Name];
RemoteEndpointMessageProperty oRemoteEndpointMessageProperty = prop as RemoteEndpointMessageProperty;
string szAddress = oRemoteEndpointMessageProperty.Address;
int nPort = oRemoteEndpointMessageProperty.Port;
我做了与上图相同的操作。
但问题是oMessageProperties 不包含键RemoteEndpointMessageProperty.Name,它只有值System.ServiceModel.Channels.BinaryMessageEncoder 的“编码器”。
有人知道为什么会发生这种情况以及如何解决这个问题吗?
我在 Mono 3.2.8 下使用 NetTcpBinding
【问题讨论】: