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()方法会在请求完成之前将请求存储在数据库中。这会是性能问题吗?我将如何更改此代码,以便在响应请求后进行数据库写入?

感谢您的建议。

4

1 回答 1

0

您有几个选择 - 排队、异步处理、产生工作线程等。请参阅这篇文章以获得一些好的答案:

响应后进行数据库写入

于 2012-10-25T00:43:11.950 回答