加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – HttpRequestBase.UserHostAddress抛出错误

发布时间:2020-12-16 04:27:16 所属栏目:asp.Net 来源:网络整理
导读:我正在捕获访问我网站特定部分的用户的一些信息,我收到一个奇怪的错误.我有一段代码执行以下操作. string userIp = request.UserHostAddress; 请求变量是HttpRequestBase.有时这工作得很好,我得到IP – 其他时候它抛出一个错误,我不知道如何防范.这是我的错
我正在捕获访问我网站特定部分的用户的一些信息,我收到一个奇怪的错误.我有一段代码执行以下操作.
string userIp = request.UserHostAddress;

请求变量是HttpRequestBase.有时这工作得很好,我得到IP – 其他时候它抛出一个错误,我不知道如何防范.这是我的错误日志.

“值不在预期范围内.在System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode,IntPtr errorInfo)
在System.Web.Hosting.IIS7WorkerRequest.GetServerVariableInternal(String name)“

看起来我第一次去一个页面它工作得很好,如果我刷新,错误会被抛出,或者快速转到另一个捕获相同变量的页面.

解决方法

我的记录器遇到了这个问题.我正在使用依赖注入,因为我怀疑你是.

在我的情况下,我收到此错误,因为我没有将我的记录器绑定到请求范围.因此,它存在于请求和维护一些HttpContext属性之间,但在与IIS通信的那些上抛出异常.

由于我正在使用Ninject,这只是将Ninject.Web.Common命名空间中的InRequestScope()方法添加到我的绑定中.

简而言之:当某些属性(被编组到IIS并且请求不再有效)被访问时,似乎会抛出HttpContext的陈旧实例.

希望有所帮助!

附: NLog比你写的任何记录器都要好.或者,如果您只是想要例外,请放入ELMAH.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读