我构建了一个 ASMX 服务并在处理来自 ELMAH 的错误日志的代码中。我将所有字段添加到数据库中,并添加了更多字段,一个是所请求客户端的 IP 地址...
但我不能(请阅读,不知道如何)得到那个......
我习惯了
string ipAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (ipAddress == "") ipAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
但是这里当然不适用,因为它不是 HTML 请求而是 SOAP 请求
在 ALL_HTTP 标头中,我得到了所有这些信息:
HTTP_CONNECTION:Keep-Alive
HTTP_CONTENT_LENGTH:440331
HTTP_CONTENT_TYPE:text/xml; charset=utf-8
HTTP_EXPECT:100-continue
HTTP_HOST:www.mydomainname.com
HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3074)
HTTP_VSDEBUGGERCAUSALITYDATA:uIDPowJ7s0UYlmhEqcDjxYQT/TQAAAAADlaOOkJ5DUizA7gKLg3YEPur8pFWlaVFmpinSAOBTuIACQAA
HTTP_SOAPACTION:"http://www. mydomainname.com/webservices/ErrorReportService/ReportErrors"
我在哪里以及如何获得请求的 IP?
请注意,我没有使用任何类型的身份验证(还)...... :)