セッションIDのみをIISログファイルに記録することは可能ですか?セッションIDを含むCookie情報をログに記録できることを確認しましたが、これによりすべてのCookieが記録される可能性があり、懸念事項はIISログファイルのサイズはかなり大きくなります。
ありがとう、よろしく、
Karthik
デフォルトでは、SessionIDはCookieに保存されるため、SessionIDを取得するにはすべてのCookieをログに記録する必要があります。 Cookieなしのセッションを使用するようにWebサイトを構成する必要があります。これにより、SessionIdがURLで渡されます。これを構成する方法の詳細については、 https://technet.Microsoft.com/en-us/library/cc725824(v = ws.10).aspx を参照してください。
SessionIDはアプリケーション構造であり、IISによってネイティブにログに記録されない理由を説明しています。
Response.AppendToLogメソッドで試すことができます
私はこれで遊んでいたところ、クールな回避策を見つけました。これにより、応答ページから任意の値を柔軟に入力できます。
ステップ1目的の変数を使用してresponse.addHeaderを追加するコード行に追加します。たとえば、ASPの場合:response.AddHeader "SERVER_SID"、Session.SessionID
ステップ2 IIS Managerでサイトを選択-> [ログ]構成を選択-> [フォーマット]の横にある[フィールドの選択...]をクリックします([W3C]を選択する必要があります)-> [カスタムフィールド]エリアクリック「フィールドの追加...」->ポップアップモーダルでフィールドの名前を入力し、「応答ヘッダー」として「ソースタイプ:」を選択し、「ソース:」フィールドに入力したヘッダー変数の正確な名前を入力しますステップ1.この例では、「SERVER_SID」です。[OK]-> [OK]-> [適用]をクリックします。
これで、ログファイルに表示されるはずです(ただし、画像、JSファイル、CSSファイルではなく、実際のリクエストが行われた行にのみ表示されます)。
@PatrickBarronの提案に加えて、IISはロギングモジュールからセッションIDに直接アクセスできないため、Cookieコレクションを介して値をログに記録する必要があります。
IISサイトツリーノードに移動し、ログエディタを選択します。[フィールドの選択...]ボタンをクリックし、ウィンドウの上部にある[標準フィールド]で[]をオンにします。 Cookies(cs(Cookie)) 'フィールド。
これは、探しているASP.NET_SessionID
値だけでなく、Cookie全体をログに記録することに注意してください。 ASP.NETの最適化の一部として、すべてのセッションにSessionIDがあるわけではないことにも注意してください。
それよりも細かくしたい場合は、少しトリッキーなことをする必要があると思います。 UrlRewriteを使用してCookie値を抽出し、X-SessionID
などの新しいRequestヘッダーを書き込んでから、カスタムフィールドをログに追加できますか?それがおそらく最短経路です。またはそれに類似したもの。