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