Anscheinend können Sie leicht eine Client-IP-Adresse in WCF 3.5 erhalten, aber nicht in WCF 3.0. Weiß jemand wie?
82
Dies hilft Ihnen in 3.0 nicht weiter, aber ich kann nur sehen, dass Leute diese Frage finden und frustriert sind, weil sie versuchen, die Client-IP-Adresse in 3.5 zu erhalten. Also, hier ist ein Code, der funktionieren sollte:
using System.ServiceModel;
using System.ServiceModel.Channels;
OperationContext context = OperationContext.Current;
MessageProperties prop = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint =
prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
string ip = endpoint.Address;
Es stellt sich heraus, dass Sie dies können, solange (a) Ihr Dienst (offensichtlich) in einem Webdienst gehostet wird und (b) Sie den AspNetCompatibility-Modus wie folgt aktivieren:
Und dann können Sie die IP-Adresse erhalten durch:
quelle
HttpContext.Current.Request.UserHostAddress
Sie können, wenn Sie auf .NET 3.0 SP1 abzielen.
Credits: http://blogs.msdn.com/phenning/archive/2007/08/08/remoteendpointmessageproperty-in-wcf-net-3-5.aspx
Referenz: http://msdn.microsoft.com/en-us/library/system.servicemodel.channels.remoteendpointmessageproperty.aspx
quelle