ASP.NET(.asmx)webservices中的客户端IP地址
我在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代码中使用Reflector查看,那就是我们所看到的:
private string GetAdditionalServerVar(int index) { if (this._additionalServerVars == null) { this.GetAdditionalServerVariables(); } return this._additionalServerVars[index - 12]; } 我看到为什么会引发NullReferenceException的两个原因: 1)_additionalServerVars成员存在多线程问题.我不认为这可能发生,因为A)我不明白为什么在测试期间服务器上会有很大的负载,而且B)ISAPIWorkerRequestInProc实例可能与一个线程有关. 2)您的服务器不是最新的,生产中的代码与我在机器上看到的代码不同. 所以我要做的就是检查服务器,确保它与.NET Framework dll保持同步. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 32位池和64位池之间的内存使用情况
- asp.net – 如何在使用Html.TextAreaFor时更改字体和颜色?
- asp.net-mvc-3 – dataannotations在主键上设置标识种子值,
- 如何以编程方式将ListItems添加到ASP.NET中的DropDownList?
- 准备ASP.Net网站进行渗透测试
- asp.net – 在部署过程中如何显示维护页面?
- 详解ASP.NET Core 中的框架级依赖注入
- asp.net – 在日期字段中插入空值?
- ASP.net MVC ValidationSummary总是被渲染
- asp.net-mvc – asp .net mvc授权
- asp.net – 在Web部署之外应用Web.Config转换
- asp.net-mvc – 是否有可能在每次验证后使ASP.NE
- asp.net-mvc – 在ajax请求中返回PDF
- asp.net-mvc – 如何显示图像从路径在asp.net mv
- asp.net – ASPXAUTH cookie未保存
- asp.net – 在Microsoft Windows Azure上设置网站
- asp.net-web-api – System.Web.Http.WebHost中的
- asp.net-mvc – 如何自定义简单的成员资格提供者
- asp.net – 如何创建自定义数据注释验证器
- asp.net – 以编程方式将HTML转换为Markdown语法