ASMX サービスと、ELMAH からのエラー ログを処理するコードを作成しました。データベースにすべてのフィールドを追加し、さらにいくつか追加します。1 つは、要求されたクライアントの 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 はどこでどのように取得できますか?
私は(まだ)いかなる種類の認証も使用していないことに注意してください... :)