7

Web サービスにログインするための私の理想的な状況は、すべてのメソッド呼び出し (認証とデータ アクセス) を、渡されたパラメーターと発生した可能性のあるエラーと共にログに記録し、それらを関連付ける単一の ID にリンクさせることです。それらを同じ呼び出しで。さらに、理想的には、すべてのパラメーターをログに記録するか、メソッド呼び出しだけをログに記録するかを制御できるようにしたいと考えています。すべてのログインをログに記録するか、失敗したログインのみを記録するかを制御できるようにしたいと考えています。繰り返しになりますが、単一の要求で取得されたすべての情報は、ID (guid またはその他) を介してリンクされます。

これが私の理想的なロギング状況です。誰かがこれらすべてを実装する方法を知っていて、ニューハンプシャー州マンチェスター地域に移動する意思がある場合... ;)

しかし、真剣に、受信したWebサービスリクエストをエラーまたはメソッド呼び出しに結び付ける方法を知っている人はいますか? 私の最初の試みは、ヘッダー (soap または html) を追加しようとすること、および拡張機能からサービス自体に任意の値を渡さないことを試みることです。私の試みはすべて成功していません。

私たちの現在のロギング状況では、あるテーブルへの認証ロギング、別のテーブルへのメソッド/ビジネス呼び出し、および別のテーブルへの例外ロギングがあり、それらの間に相互接続はありません。タイムスタンプは役立つ場合もありますが、効果的にデバッグするには信頼性が十分ではありません。私たちは現在 .Net 2.0 を使用しており、年末までに 3.5 を使用する可能性があるため、返信が 2.0 の機能にとどまるとより役立つでしょう。

誰でもアイデアはありますか?

4

1 に答える 1

11

可能であれば wcf を使用し、メッセージ ログを実装します。http://msdn.microsoft.com/en-us/library/ms730064.aspx を参照してください。

<system.diagnostics>
  <sources>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
                 <add name="messages"
                 type="System.Diagnostics.XmlWriterTraceListener"
                 initializeData="c:\logs\messages.svclog" />
          </listeners>
      </source>
    </sources>
</system.diagnostics>

<system.serviceModel>
  <diagnostics>
    <messageLogging 
         logEntireMessage="true" 
         logMalformedMessages="false"
         logMessagesAtServiceLevel="true" 
         logMessagesAtTransportLevel="false"
         maxMessagesToLog="3000"
         maxSizeOfMessageToLog="2000"/>
  </diagnostics>
</system.serviceModel>
于 2008-09-26T20:39:27.397 に答える