【问题标题】:C# Service Client - Transfer-Encoding: ChunkedC# 服务客户端 - 传输编码:分块
【发布时间】:2017-05-11 16:11:02
【问题描述】:

我目前正在尝试在 C# 中修复我的 SOAP-Client,但不知何故被 Transfer-Encoding 卡住了。我或多或少是 C# 的新手,所以我完全有可能在这里遗漏了一些小东西。

我使用了本地 Tomcat 服务器的 SOAP 服务,如下:https://web.archive.org/web/20180506023052/http://www.csharptutorial.in/37/csharp-net-how-to-consume-a-web-service-in-csharp-net-visual-studio-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> Response-Array 似乎是空的,而“控制”-Flags 被正常解析。

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

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

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

为了完整起见:

我的WSDL

我的Traffic - Request->Response

【问题讨论】:

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


    【解决方案1】:

    经过一番研究、反复试验和很多时间,我终于弄明白了我的错误。

    C# 似乎没有Transfer-Encoding: Chunked 有问题

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

    我们通过从Axis 切换到Apache CXF 解决了这个问题。新生成的wsdl 在我们的 C# 客户端使用时没有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-23
      • 2019-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多