我有一组网络服务,我想添加一个跟踪层。 我不想修改每个 Web 服务,因为我有很多。 我想在每次进入 Web 服务时写入日志:Web 服务的名称和参数。
最好的方法是什么?
附言我正在使用 asp.net 和 C#。
编辑: 我只想包装 Web 服务,因为每个服务的开头都有 log(..)。
最佳答案
实现此目的的常用方法是注入(inject) 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
<configuration>
<system.web>
<webServices>
<soapExtensionTypes>
<add type="{Type name}, {Assembly}" priority="1" group="0" />
</soapExtensionTypes>
</webServices>
</system.web>
</configuration>
关于c# - 网络服务跟踪/日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4632124/