Windows サービスによってホストされている WCF REST レスト サービスがあります。カスタム UserNamePasswordValidator 認証を使用します。
認証時にクライアントの 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;
}
}
ただし、その場合は context が null であるため、例外がスローされます。どうすればこれを解決できますか? ほとんどが提案されている asp.net 互換モードはオプションではないことに注意してください。私のサービスは、IIS ではなく、Windows サービスによってホストされています。
ありがとう!