【发布时间】:2010-03-28 19:47:21
【问题描述】:
我正在使用带有 Silverlight 的 ASP.NET (.asmx) Web 服务。由于无法在 Silverlight 中找到客户端 IP 地址,因此我不得不在服务端记录此内容。 以下是我尝试过的一些方法:
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();
上述所有方法在我的本地系统上都可以正常工作,但是当我在生产服务器上发布我的服务时,它开始报错,
错误:对象引用未设置为对象的实例。堆栈跟踪:
在 System.Web.Hosting.ISAPIWorkerRequestInProc.GetAdditionalServerVar(Int32 索引)
在 System.Web.Hosting.ISAPIWorkerRequestInProc.GetServerVariable(字符串名称)
在 System.Web.Hosting.ISAPIWorkerRequest.GetRemoteAddress()
在 System.Web.HttpRequest.get_UserHostAddress()
【问题讨论】:
标签: asp.net web-services asmx