从WebService捕获传入的参数

时间:2009-05-07 09:02:17

标签: c# web-services logging arguments

我想知道如何动态捕获Web服务调用的参数(用于记录)。

是否存在存储正在进行的呼叫的参数的属性?

4 个答案:

答案 0 :(得分:1)

假设您正在为您的Web服务使用Windows Communication Foundation,您可以创建一个客户端消息检查器来捕获入站通信并解析参数并将它们存储到数据库表中。您需要处理的接口是 IEndpointBehavior IClientMessageInspector 。创建之后,您可以将其作为行为附加到web.config文件中的某个端点,并且应该这样做。

答案 1 :(得分:0)

我存储进入Web服务的一种方式是存储在数据库中。这是一个.NET Web服务,通​​过存储过程从db获取数据,在存储过程中我只使用INSERT INTO语句来存储传入的内容。

答案 2 :(得分:0)

如何通过web.config中的diagnostics元素启用跟踪?这可能更多用于调试目的。

<microsoft.web.services>
    <diagnostics>
    <trace enabled="true" input="inputTrace.config" output="outputTrace.config"/>
    </diagnostics>
</microsoft.web.services>

答案 3 :(得分:0)

这取决于日志记录的类型和您使用的Web服务的类型。它还取决于您最终要对此信息做什么。 (报告?统计?调试?)

它还取决于您要捕获Web服务参数的位置。您可以从调用应用程序中记录它们,也可以直接在Web服务中记录它们,具体取决于应用程序和网络的体系结构。您可以将参数信息存储在Web服务器上的日志中(这可能会影响Web服务器的性能),或者您可以在应用程序中本地记录参数并从中处理该信息。