我有一個WCF REST休息服務,由Windows服務託管。它使用自定義的UserNamePasswordValidator身份驗證。UserNamePasswordValidator中的客戶端IP地址
我想獲得客戶端的IP地址進行驗證時:
ublic static string GetClientIPAddress()
{
try
{
var context = OperationContext.Current;
var prop = context.IncomingMessageProperties;
var endpoint = prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
return endpoint.Address;
}
catch (System.Exception exc)
{
Debug.Assert(false,exc.Message);
return string.Empty;
}
}
但它拋出一個異常,因爲背景是在這種情況下空。我該如何解決這個問題?請注意,大多數建議的asp.net兼容模式不是一種選擇,我的服務由WIndows服務託管,而不是由IIS託管。
謝謝!
爲什麼你不使用IIS? – Mingebag 2013-04-26 13:53:36
因爲我必須將它安裝到更多的機器,其中IIS沒有使用 – Tom 2013-04-26 18:32:15
但是如果你正在製作一個.net應用程序,你就把它放到了應用程序中。在服務器上,並安裝在那裏IIS,多數民衆贊成在它,所以你不需要在每個客戶端上安裝它.. – Mingebag 2013-04-27 10:17:13