none
WCF与Http1.0兼容问题的解决方式 RRS feed

  • 常规讨论

  • WCF不支持http1.0,这个问题在版主的博客上请教过(http://www.frankxulei.com/?p=254),

    在英文msdn上也检索过,提问过,都没有得到真正的解决方法

    客户那里也得不到谅解,客户端分布在四十多个地方,笔记本电脑还可以移动,没法保证所有的网络环境都支持http1.1

     

    自己解决:

    终于看到了曙光,目前之所以通信失败,是因为【Chunked encoding upload is not supported on the HTTP/1.0 protocol】这个错误。

    根据下面的文章

    http://blog.chinaunix.net/u3/102500/showart_2296716.html

     

    Transfer Codings

     

    HTTP1.1支持chunked transfer,所以可以有Transfer-Encoding头部域:

    Transfer-Encoding: chunked

     

       HTTP1.0则没有。

     

     

    将basicHttpBinding的transferMode改为"Buffered",发现Request仍然是1.1,但里面不再有Transfer-Encoding,只支持http1.0的代理服务器也可以正常使用了。

    当然transferMode改为"Buffered"可能会引起一些其他的问题,所以打算做成启动的时候测试用户的网络环境,不能正常使用http1.1的时候,自动切换transferMode。然后再慢慢解决其他发现的小问题吧

     

    • 已更改类型 cs.liwei 2010年9月8日 7:47
    2010年9月8日 4:08

全部回复

  • 谢谢LZ分享~
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    老徐的博客】:http://www.cnblogs.com/frank_xl/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    2010年9月9日 3:44
    版主
  • 补充更新一下,做个备忘

    transferMode改为"Buffered"之后实际上心理是比较不安的,某些文章有说法,WCF的Stream下载,必须将transferMode设为Streamed。

    但是好像用起来没有问题,就把这个问题搁置了。

    但昨天用户反映,拨号上网的客户端,数据文件下载的时候果然发生失败,虽然还没有具体调查原因,但是觉得可能与此有关。

    经过尝试发现,transferMode改为"StreamedResponse"之后,仍然可以兼容http1.0的代理服务器,而且Stream的下载速度有了大幅度提高,

    下面是大约5M大小的文件的下载时间的测试结果,很明显的发现StreamedResponse的设置下,下载时间大概只有原来的三分之一:

    Buffered:

     

    DownloadStart:20101007121917296

    DownloadEnd:  20101007121918796 1500

    DownloadStart:20101007122032984

    DownloadEnd:  20101007122034937 1953

    DownloadStart:20101007122139406

    DownloadEnd:  20101007122140562 1156

    DownloadStart:20101007120227171

    DownloadEnd:  20101007120228562 1391

    DownloadStart:20101007120450828

    DownloadEnd:  20101007120452343 1515

    DownloadStart:20101007120546953

    DownloadEnd:  20101007120548515 1562

     

    StreamedResponse:

    DownloadStart:20101007115806609

    DownloadEnd:  20101007115806718 109

    DownloadStart:20101007115911093

    DownloadEnd:  20101007115911734 641

    DownloadStart:20101007120030203

    DownloadEnd:  20101007120031109 906

    DownloadStart:20101007120700203

    DownloadEnd:  20101007120700703 500

    DownloadStart:20101007120801968

    DownloadEnd:  20101007120802453 485

    DownloadStart:20101007120913953

    DownloadEnd:  20101007120914515 562

     

     

    2010年10月7日 5:36