首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log服务跟踪/日志

log服务跟踪/日志
EN

Stack Overflow用户
提问于 2011-01-08 11:07:42
回答 7查看 13.6K关注 0票数 6

我有一组web服务,我想添加一个跟踪层。我不想修改每个web服务,因为我有很多服务。我想写日志,每次进入一个网络服务:网络服务的名称和参数。

最好的方法是什么?

附注:我正在使用asp.net和C#。

编辑:我只想包装web服务,因为每个服务都有log(..)在开始的时候。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-01-18 01:18:52

实现这一点的一种常见方法是注入SOAP扩展。在那里,您可以拦截原始SOAP中的每个请求/响应数据包。示例显示了如何实现它,解释描述了它的工作原理以及如何配置它。

示例:

http://msdn.microsoft.com/en-us/library/system.web.services.protocols.soapextension.aspx

解释:

http://msdn.microsoft.com/en-us/library/esw638yk(vs.71).aspx

配置:

http://msdn.microsoft.com/en-us/library/b5e8e7kk(v=vs.71).aspx

代码语言:javascript
复制
<configuration>
 <system.web>
   <webServices>
     <soapExtensionTypes>
      <add type="{Type name}, {Assembly}" priority="1" group="0" />
     </soapExtensionTypes>
    </webServices>
 </system.web>
</configuration>
票数 6
EN

Stack Overflow用户

发布于 2011-01-17 22:53:08

将Global Application Class Global.asax文件添加到项目中,并将日志记录逻辑添加到Application_BeginRequest()方法中。发送者对象将包含HTTP请求和参数。您可以只过滤.asmx请求并记录这些请求。

代码语言:javascript
复制
    protected void Application_BeginRequest(object sender, EventArgs e)
    {

    }
票数 1
EN

Stack Overflow用户

发布于 2011-01-18 03:10:55

编辑--

试一试PostSharp。这是获得此功能的最简单方法。为了后人,我将在下面留下我的帖子,但忽略它,使用PostSharp。

如果您的web服务是WCF,那么您应该查看http://msdn.microsoft.com/en-us/magazine/cc163302.aspx

在此过程中的每一步,它们都提供了您可以插入的扩展点。您可以使用这些可扩展性点来实现各种自定义行为,包括消息或参数验证、消息日志记录、消息转换。

毫无疑问,这是WCF服务的发展方向。否则,如果它们只是web服务,那么您可以使用Unity框架以及hookup和Interceptor来做同样的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4632124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档