C#服务客户端 - 传输编码:分块

时间:2017-05-11 16:11:02

标签: c# web-services soap soap-client webservice-client

我目前正在尝试使用C#修复我的SOAP客户端,但不知何故遇到了Transfer-Encoding。我或多或少是C#的新手,所以我完全可能会错过这里的一些小事。

我在本地Tomcat服务器上使用了SOAP服务:hxxp://www.csharptutorial.in/37/csharp-net-how-to-consume-a-web-service-in-csharp-net-视觉工作室-2010

我目前的代码:

using System;
using ConsoleApp1.Lims;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            LimsZugriffService client = new LimsZugriffService();
           // FunktionsErgebnis response = client.connect();
           // Console.WriteLine("Connect" + response.meldung);
            String[] bond = new String[] { "versuch.auftrag.nr=2014/0031" };
            String[] bondFail = new String[] { "abc" };
            VersuchsschrittErgebnis reponseVersuch = client.ermittleVersuchsschritte(bond);
            Console.WriteLine(reponseVersuch.ermittelteVersuchsschritte.Length);
            Console.WriteLine(reponseVersuch.meldung);

        }
    }
}

经过一些测试后我发现,某些东西不按预期工作。我的响应 - <ermittelteVersuchsschritte>数组似乎是空的,而&#34;控制&#34; -Flags正常解析。

我捕获了客户端和服务器之间的流量,以找出问题所在并且它实际上完全存在。刚刚进入8192个字节块。

是不是,WebClient的C#实现遇到了Transfer-Encoding: Chunked的一些问题?

谷歌搜索几个小时后,我找不到令人满意的解决方案。我希望有人比我更了解C#和WebServices有答案。

为了完整起见:

我的WSDL

我的Traffic - Request->Response

1 个答案:

答案 0 :(得分:0)

经过一些研究,试验和错误以及很长时间后我终于找到了我的错误。

C#似乎,导致Transfer-Encoding: Chunked

出现问题

错误在于服务方面。消耗的wsdl是在Axis(第一个Axis而不是Axis2)的帮助下从java代码生成的。轴生成wsdl 1.0,而C#似乎期望wsdl 2.0。所以最后,wsdl中描述的XML结构存在缺陷,无法自动使用。

我们通过从Axis切换到Apache CXF来解决此问题。新生成的wsdl在我们的C# - 客户端没有出现问题。