0
我有一个工作在Debian Mono下的WCF服务。
我的目标是获取服务中的客户端IP地址。
我读过的这表明,主要解决的是类似主题的一个很大的量使用RemoteEndpointMessageProperty
:如何在Linux中获取WCF服务中的客户端IP?
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
。
任何人都知道为什么会发生这种情况,以及如何解决这个问题?
我使用NetTcpBinding的单3.2.8下
'HttpContext.Current'是'null'在我的服务。我添加了“ASP.NET兼容模式”,但它也没有帮助 – skelter