C# Soap登录.net

C# Soap登录.net,c#,web-services,soap,C#,Web Services,Soap,我有一个内部企业应用程序,目前使用10种不同的web服务。它们通过旧式的“Web引用”而不是使用WCF进行消费 我遇到的问题是试图与公司中的其他团队合作,他们正在创作我正在使用的服务。我发现我需要捕获我正在发送和接收的确切SOAP消息。为此,我创建了一个扩展SoapExtensionAttribute的新属性。然后,我将该属性添加到生成的Reference.cs文件中的服务方法中。这是可行的,但痛苦的原因有两个。首先,它是一个生成的文件,所以我在其中所做的任何事情都可以被覆盖。其次,我必须记住在

我有一个内部企业应用程序,目前使用10种不同的web服务。它们通过旧式的“Web引用”而不是使用WCF进行消费

我遇到的问题是试图与公司中的其他团队合作,他们正在创作我正在使用的服务。我发现我需要捕获我正在发送和接收的确切SOAP消息。为此,我创建了一个扩展SoapExtensionAttribute的新属性。然后,我将该属性添加到生成的Reference.cs文件中的服务方法中。这是可行的,但痛苦的原因有两个。首先,它是一个生成的文件,所以我在其中所做的任何事情都可以被覆盖。其次,我必须记住在签入文件之前删除属性


是否有更好的方法捕获我正在发送和接收的确切SOAP消息?

您可以通过创建SOAPExtension来实现这一点。检查。

我使用了下面的代码,这是我如何在不久前编写的应用程序中捕获SOAP请求的示例

<System.Diagnostics.Conditional("DEBUG")> _
    Private Sub CheckHTTPRequest(ByVal functionName As String)
        Dim e As New UTF8Encoding()

        Dim bytes As Long = Me.Context.Request.InputStream.Length
        Dim stream(bytes) As Byte
        Me.Context.Request.InputStream.Seek(0, IO.SeekOrigin.Begin)
        Me.Context.Request.InputStream.Read(stream, 0, CInt(bytes))

        Dim thishttpRequest As String = e.GetString(stream)

        My.Computer.FileSystem.WriteAllText("D:\SoapRequests\" & functionName & ".xml", thishttpRequest, False)

    End Sub
_
私有子检查HttpRequest(ByVal函数名为字符串)
尺寸e为新的UTF8Encoding()
Dim字节的长度=Me.Context.Request.InputStream.Length
作为字节的Dim流(字节)
Me.Context.Request.InputStream.Seek(0,IO.SeekOrigin.Begin)
Me.Context.Request.InputStream.Read(流,0,CInt(字节))
将此HttpRequest设置为String=e.GetString(流)
My.Computer.FileSystem.WriteAllText(“D:\SoapRequests\”&functionName&“.xml”,thishttpRequest,False)
端接头
像我那样设置条件属性会使编译器忽略除调试之外的所有生成类型的方法调用

对不起,VB,这是我强制使用的。

这是一个网络应用程序吗

将SoapExtension代码放在HTTPModule中,并将SOAP信封注入HTTPOutput流


这样,当处于调试模式时,我会在页面顶部绘制一个类似于可折叠div的图片,列出该页面的所有SOAP通信。

我已经构建了一个HTTPModule,可以实现这一点,我将删除公司特定的信息,并在今天晚些时候发布这些信息


另外,请查看SoapUI,它是一个方便的工具。

这似乎是一个常见的问题,因为我刚刚问了它,并且被告知要查看


您不必编辑生成的
Reference.cs
。您可以在应用程序的
app.config

中引用扩展名,我不知道该调用此方法的位置。我还看到了对HttpContext的引用。我在打网络请求电话,没有接到。或者,换一种说法,我是一个消费别人的web服务的人。我被要求提供我发送给他们的确切的SOAP,以及从他们的服务中返回给我的SOAP。啊,对不起,Rob,我突然得出结论,你是在Web服务方面工作的。