J'utilise les services Web ASP.NET (.asmx) avec Silverlight. Comme il n'y a aucun moyen de trouver l'adresse IP du client dans Silverlight, j'ai dû me connecter à la fin du service. Ce sont des méthodes que j'ai essayé:Adresse IP du client dans les services Web ASP.NET (.asmx)
Request.ServerVariables("REMOTE_HOST")
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
Request.UserHostAddress()
Request.UserHostName()
string strHostName = Dns.GetHostName();
string clientIPAddress = Dns.GetHostAddresses(strHostName).GetValue(0).ToString();
Toutes les méthodes ci-dessus fonctionnent très bien sur mon système local, mais quand je publie mon service sur un serveur de production, il commence à donner des erreurs,
Error: Object reference not set to an instance of an object. StackTrace:
at System.Web.Hosting.ISAPIWorkerRequestInProc.GetAdditionalServerVar(Int32 index)
at System.Web.Hosting.ISAPIWorkerRequestInProc.GetServerVariable(String name)
at System.Web.Hosting.ISAPIWorkerRequest.GetRemoteAddress()
at System.Web.HttpRequest.get_UserHostAddress()
NULL Exception Référence se produit lorsque je tente Request.UserHostAddress ou HttpContext.Current.Request.ServerVariables [ « REMOTE_ADDR »] Je viens ne peux pas trouver toute façon d'obtenir le client IP dans mon service asmx. = ( –
@Zain: Comme je l'ai dit, vérifiez null avant d'utiliser l'une de ces valeurs.En fait, assurez-vous de tester 'HttpContext.Current' pour voir si elle est nulle avant d'essayer' HttpContext.Current.Request'. –