0

ログインしたユーザーがやり取りする Web サービスがいくつかあります。現在、それらは ASMX で実行されていますが、WCF へのアップグレードは保留中です。リクエストの名前、ユーザー ID、パラメータ、処理時間、エラーが発生した場合などを追跡するロガーを作成します。私はこのようなことを考えています:

public class MyWebService : System.Web.Services.Webservice
{
    MyAppLogger TheAppLogger = new MyAppLogger();

    [WebMethod(EnableSession = true)]
    public string SomeWebService(string SomeParameters)
    {
         TheAppLogger.StartLogging();
         TheJsonStringToReturn = "";

         try
         {
            //do something that populates TheJsonStringToReturn
         }
         catch
         {
             TheAppLogger.LogException();
         }

         TheAppLogger.LogRequest();

         return TheJsonStringToReturn;
    }
}

私の質問は次のとおりです。今説明したとおりにすると、LogRequest()メソッドはリクエストが完了する前にリクエストをDBに保存します。それはパフォーマンスの問題になるでしょうか?リクエストが応答された後にデータベースの書き込みが行われるように、このコードを変更するにはどうすればよいですか?

ご提案いただきありがとうございます。

4

1 に答える 1

0

キューイング、非同期処理、ワーカー スレッドの生成など、いくつかのオプションがあります。いくつかの適切な回答については、この投稿を参照してください。

応答後にデータベース書き込みを行う

于 2012-10-25T00:43:11.950 に答える