<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    tbwshc

    WCF傳較大數(shù)據(jù) 例子說(shuō)明

    在從客戶(hù)端向WCF服務(wù)端傳送較大數(shù)據(jù)(>65535B)的時(shí)候, 客戶(hù)端會(huì)報(bào)錯(cuò)。什么遠(yuǎn)程服務(wù)器沒(méi)反應(yīng)之類(lèi)的。

    問(wèn)題是我實(shí)際發(fā)送的數(shù)據(jù)是剛剛從WCF服務(wù)端接收過(guò)來(lái)的,一來(lái)一去,數(shù)據(jù)量差別并不大。

    然后發(fā)現(xiàn),在客戶(hù)端和服務(wù)端實(shí)際使用的是不同的配置,對(duì)于客戶(hù)端,在添加ServiceReference時(shí)自動(dòng)生成的ServiceReferences.ClientConfig文件中system.serviceModel節(jié)下有這樣的設(shè)置:

    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_WcfService" maxBufferSize="2147483647"
                maxReceivedMessageSize="2147483647">
                <security mode="None" />
            </binding>
        </basicHttpBinding>
    </bindings>

    然后在Client節(jié)里應(yīng)用Binding Configuration:

    <client>
                <endpoint address="http://localhost:22000/Service/WcfService.svc"
                    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_WcfService"
                    contract="WcfServiceReference.WcfService" name="BasicHttpBinding_WcfService" />

     

    </client>

    在Binding里指定了最大緩存字節(jié)數(shù)和最大接受字節(jié)數(shù),相當(dāng)于2G的大小!除非傳一整套連續(xù)劇,一般是夠用了。

    而在服務(wù)端,Web.config文件里,Bindings節(jié)是空的,而Service也沒(méi)有指定bindingConfiguration屬性,那么它們采用的就是默認(rèn)的65535的大小。

    問(wèn)題找到,解決就比較容易了:

    在Bindings節(jié)添加新的Binding設(shè)置,TB指定最大接受數(shù)據(jù):

    <bindings>
        <basicHttpBinding>
            <binding name="LargeDataTransferServicesBinding" maxReceivedMessageSize="2147483647"
      messageEncoding="Text" transferMode="Streamed" sendTimeout="00:10:00" />
        </basicHttpBinding>
    </bindings>

    之后給相應(yīng)的Service指定bindingConfiguration屬性:

    <service behaviorConfiguration="Server.Service.WcfServiceBehavior"
      name="Server.Service.WcfService">
      <endpoint address="" binding="basicHttpBinding" bindingConfiguration="LargeDataTransferServicesBinding" contract="Server.Service.WcfService" />
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    </service>

    這樣就可以從客戶(hù)端發(fā)送足夠大的數(shù)據(jù)了。

    P.S.:

    asp.net默認(rèn)只能傳4M的文件,所以盡管設(shè)定了Wcf兩端的配置,還是超不出.net的限定,所以如果要傳輸大文件,還需要在System.Web節(jié)下加上

        <httpRuntime maxRequestLength="102400" />
    這里的單位是KB,這樣就可以傳100M的文件了。當(dāng)然,這么大的文件,最好還是分段傳輸比較好。

    posted on 2012-06-26 16:20 chen11-1 閱讀(1122) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 日韩精品无码人妻免费视频 | 亚洲视频.com| 国产精品免费看久久久香蕉| 亚洲AV无码专区日韩| 亚洲色图在线播放| 99精品一区二区免费视频| 亚洲欧洲第一a在线观看| 最近新韩国日本免费观看| 亚洲色图校园春色| 特色特黄a毛片高清免费观看| 97在线视频免费| 亚洲欧洲校园自拍都市| 黄页免费的网站勿入免费直接进入| 亚洲国产成人精品激情| 国产免费久久精品99久久| 国产亚洲av片在线观看播放| 国产精品视频白浆免费视频| 亚洲人成综合在线播放| 久久er国产精品免费观看2| 91亚洲导航深夜福利| 久久精品女人天堂AV免费观看| 亚洲国产高清国产拍精品| 亚洲国产精品丝袜在线观看| 美女被免费网站91色| 亚洲人成伊人成综合网久久| 日本19禁啪啪无遮挡免费动图| 一级A毛片免费观看久久精品 | 亚洲 国产 图片| a级日本高清免费看| 亚洲一区二区三区无码国产| 国产精品免费大片| 亚洲精品综合在线影院| 免费观看无遮挡www的视频| 亚洲国产成人久久精品大牛影视| 亚洲成a人一区二区三区| 青青草无码免费一二三区| 亚洲色中文字幕在线播放| 亚洲精品国产精品乱码不99 | a成人毛片免费观看| 国产猛烈高潮尖叫视频免费| 日韩亚洲产在线观看|