我捕获了一些访问我网站特定部分的用户的信息,并且出现奇怪的错误。我有一段代码执行以下操作。HttpRequestBase.UserHostAddress抛出错误
string userIp = request.UserHostAddress;
请求变量是一个HttpRequestBase。有时候这种方式工作的很好,我得到了IP--其他时候它会抛出一个错误,我不知道如何防范。这是来自我的错误日志。
“值没有在预期范围之内。在System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(的Int32的errorCode,IntPtr的errorInfo中) 在System.Web.Hosting.IIS7WorkerRequest.GetServerVariableInternal(字符串名称)”
看来,我第一次去它的网页工作得很好,如果我进行刷新,就会抛出错误,或者快速进入捕获相同变量的另一个页面。
看看这是否可以帮助你:http://stackoverflow.com/questions/650357/httprequest-servervariables-throws-argumentexception-in-wcf-with-iis7 – 2012-02-07 16:13:35
我发布之前,我读了一个。这不适用于此。我没有将合同设置为OneWay。 – Mitch 2012-02-07 16:45:28
你可以尝试'System.Web.HttpContext.Current.Request.UserHostAddress' - 只是为了防止HttpRequestBase不会像HttpRequest – 2012-02-07 18:27:30