【问题标题】:WCF REST service. Operation start and finish timeWCF REST 服务。操作开始和结束时间
【发布时间】:2013-08-19 08:58:40
【问题描述】:

我有一个 WCF RESTful Web 服务,我想知道是否可以在每个方法调用之前和每个方法调用之后记录当前时间(我的意思是在某些操作合同中定义的方法)。我不想将日志记录包含在方法本身中。 我需要在服务器端登录。

【问题讨论】:

    标签: .net wcf rest


    【解决方案1】:

    WCF 应用不会写入日志,除非您向它们添加了日志记录。看看http://msdn.microsoft.com/en-us/library/ms733025.aspx 您可以尝试在配置 xml 文件中添加侦听器。

    <configuration>
       <system.diagnostics>
          <sources>
                <source name="System.ServiceModel" 
                        switchValue="Information, ActivityTracing"
                        propagateActivity="true">
                <listeners>
                   <add name="traceListener" 
                       type="System.Diagnostics.XmlWriterTraceListener" 
                       initializeData= "c:\log\Traces.svclog" />
                </listeners>
             </source>
          </sources>
       </system.diagnostics>
    </configuration>
    

    【讨论】:

    • 我可以使用这种方式,但我对默认信息不满意,我想获取详细的格式化信息,例如哪些参数被传递给方法等等......
    • 好的,我明白了。您还应该添加新的 WCf 管道。例如;在所有方法调用之前,您的新管道将用作记录器。 pieterderycke.wordpress.com/2010/12/04/…
    【解决方案2】:

    尝试以下简单的方法进行测试而不是生产:

    StringBuilder stringBuilder = new StringBuilder();
    
    stringBuilder.AppendLine(DateTime.Now.ToString()); //START
    wcfService.ActionCallMethod(); //THIS IS AN EXAMPLE SERVICE CALL WHERE YOU WILL MAKE THE CALL
    stringBuilder.AppendLine(DateTime.Now.ToString()); //END
    
    System.IO.File.WriteAllLines(@"c:\logfile.txt", stringBuilder.ToString());
    

    您还可以使用数据库写入/日志操作替换文件。我建议创建一个自定义类,您可以调用它,传递一个持久化到数据库自定义日志表的日期时间戳。

    我会在开发和测试期间将它与 WCF svclog 文件结合起来,以确保在未转动的情况下不会出现任何问题。

    Configuring WCF Tracing

    【讨论】:

    • 您应该在调用 WCF 服务方法时放置代码。我发表了评论//Execute the service... - 这是您必须调用服务的地方。
    • 抱歉,我编辑了问题。我需要在服务器端进行日志记录。
    • 以上是服务器端。在 WCF 服务方法内部,它也会执行代码,因此从 START 时间到 END 时间应该告诉您服务执行服务器端的时间。
    • 但我不想在每个方法中都放置这样的代码,我想知道是否有任何方法可以通知“有人刚刚调用了我的网络服务的方法“Foo””事件 - > 记录此事件。
    • 我在底部提到的使用 WCF 跟踪。这将只使用配置设置而不是代码来记录每个呼叫
    猜你喜欢
    • 2011-10-09
    • 1970-01-01
    • 2013-04-02
    • 2016-09-24
    • 2018-11-07
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    相关资源
    最近更新 更多