最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

WCF配置心得

 更新時(shí)間:2013年01月27日 12:52:54   作者:  
經(jīng)過(guò)一整天的折騰,總算對(duì)手動(dòng)配置WCF有些感覺了,于是寫篇博文記錄一下心得

根據(jù)蔣金楠老師的博文所說(shuō)的, WCF的終結(jié)點(diǎn)有三個(gè)要素組成,分別是地址(Address)、綁定(Binding)和契約(Contract),簡(jiǎn)記可寫成Endpoint = ABC。
 地址:地址決定了服務(wù)的位置,解決了服務(wù)尋址的問題。
 綁定:綁定實(shí)現(xiàn)了通信的所有細(xì)節(jié),包括網(wǎng)絡(luò)傳輸、消息編碼,以及其他為實(shí)現(xiàn)某種功能對(duì)消息進(jìn)行的相應(yīng)處理。綁定的類型包括BasicHttpBinding、WsHttpBinding、NetTcpBinding等。
 契約:契約是對(duì)服務(wù)操作的抽象,也是對(duì)消息交換模式以及消息結(jié)構(gòu)的定義。
 以上這些內(nèi)容摘抄自蔣老師的博文。理解的這些對(duì)配置WCF很有幫助。
那下面就一步步來(lái)配置一個(gè)WCF。

首先是服務(wù)端,
一個(gè)WCF的核心是終結(jié)點(diǎn),那么先把終結(jié)點(diǎn)寫列出來(lái),

復(fù)制代碼 代碼如下:

<services>
      <service name="BLL.Logic" behaviorConfiguration="te">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:9091/logicService"/>
          </baseAddresses>
        </host>
        <endpoint address="" binding="ws2007HttpBinding" contract="BLL.ILogic"  bindingConfiguration="transportWS2007HttpBinding" />
      </service>
    </services>

 從<endpoint>幾個(gè)屬性address(地址) binding(綁定),Contract(契約),這幾個(gè)屬性正是上面所說(shuō)的"ABC"  注意一下 binding里填的是BasicHttpBinding、WsHttpBinding、NetTcpBinding這些值,而確切使用哪一個(gè)binding呢,就需要在bindingConfiguration中設(shè)置,值是使用的<binding>的name值。contract項(xiàng)目中contract的契約接口的完全限定名,這里關(guān)于binding的配置接下來(lái)會(huì)介紹。address沒填值,這里在<host>中已經(jīng)給定了一個(gè)地址了。
      介紹完<endpoint>,再看看<endpoint>外面的。<endpoint>包含在<services>的<service>下,這里的<serivces>是一個(gè)集合,里面可以包含多個(gè)服務(wù),每個(gè)服務(wù)都會(huì)有特定的命名(name),而name則是項(xiàng)目里頭實(shí)現(xiàn)契約(Contract)的服務(wù)(Service)的類的完全限定名。這里對(duì)servicebehavior進(jìn)行了一些設(shè)置,具體的內(nèi)容在名為te的<servicebehavior>中。
既然上面有配置有涉及到binding和behavior,下面則分別對(duì)兩者進(jìn)行配置。
復(fù)制代碼 代碼如下:

<bindings>
      <ws2007HttpBinding>
        <binding name="transportWS2007HttpBinding" maxReceivedMessageSize="2147483647"  maxBufferPoolSize="2147483647">
          <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647"/>
          <security mode="Message">
            <transport clientCredentialType="None"/>
          </security>
        </binding>
      </ws2007HttpBinding>

        <basicHttpBinding>
          <binding name="newBinding" maxBufferPoolSize="21474835647" maxReceivedMessageSize="2147483647" messageEncoding="Text">
            <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
          </binding>
        </basicHttpBinding>
</bindings>


 bindings這部分和services一樣,也是一個(gè)集合,里面包含著各種類型的binding,例如在<ws2007HttpBinding>里面的<binding>才是確切的某一個(gè)binding, <endpoint>使用時(shí),bindingConfiguration的名稱要寫對(duì)外,binding的類型也不能錯(cuò)。<binding>里面的子節(jié)點(diǎn)和屬性就不再一一介紹了,若是要通過(guò)WCF傳輸比較大的數(shù)據(jù)時(shí),要在binding的屬性和<readerQuotas>設(shè)置一下。
復(fù)制代碼 代碼如下:

  <behaviors>
      <serviceBehaviors>
        <behavior name="te">
          <serviceMetadata httpGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>

最后到behaviors了。同理,behaviors也是一個(gè)集合,里面有兩種類型,一種是serviceBehaviors,用于配置service的;另一種是endpointBehaviors,用于配置endpoint的。這兩種類型都是一個(gè)集合,子節(jié)點(diǎn)<behavior>是它們的子項(xiàng),以name來(lái)區(qū)分各個(gè)behavior,至于里面有什么屬性和子項(xiàng)也不多說(shuō)了,使用時(shí)在相應(yīng)的service或endpoint的behaviorConfiguration屬性填上behavior的name值就行了。
服務(wù)端的配置就嘮叨到這里,下面到客戶端的。
復(fù)制代碼 代碼如下:

<client>
      <endpoint address="http://localhost:9091/logicService" binding="ws2007HttpBinding"
          bindingConfiguration="WS2007HttpBinding_ILogic" contract="Proxy.ILogic"
          name="WS2007HttpBinding_ILogic">
      </endpoint>
    </client>

首先也是是終結(jié)點(diǎn),客戶端的終結(jié)點(diǎn)放在client里,里面也是有"ABC",這里的address一定要與服務(wù)端配置的一樣,否則找不到相應(yīng)的服務(wù)的。binding的類型也要與服務(wù)端的一樣,contract則是用svcutil或其他工具生成的代碼里的那個(gè)類的完全限定名。
復(fù)制代碼 代碼如下:

<ws2007HttpBinding>
        <binding name="WS2007HttpBinding_ILogic" closeTimeout="00:01:00"
            openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
            bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
            maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647"
            messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
            allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="1024" maxArrayLength="2147483647"
              maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <reliableSession ordered="true" inactivityTimeout="00:10:00"
              enabled="false" />
        </binding>
      </ws2007HttpBinding>

另一個(gè)還要提的是這個(gè)binding,客戶端的binding比服務(wù)端的要配置多一點(diǎn)東西closeTimeout,openTimeout,receiveTimeout 大致與服務(wù)端一樣。
另外若要傳輸比較的大數(shù)據(jù)時(shí),可以按我這樣來(lái)配,其實(shí)這個(gè)配置已經(jīng)適用于傳輸幾M的圖片。由于是個(gè)入門者,很多東西的理解還不夠透徹,以上有說(shuō)錯(cuò)的還請(qǐng)各位批評(píng)指出。謝謝!

相關(guān)文章

  • 淺談測(cè)試驅(qū)動(dòng)開發(fā)TDD之爭(zhēng)

    淺談測(cè)試驅(qū)動(dòng)開發(fā)TDD之爭(zhēng)

    在軟件行業(yè)中,神仙打架的名場(chǎng)面,那就不得不提的是2014年的那場(chǎng)——測(cè)試驅(qū)動(dòng)開發(fā)(TDD)之爭(zhēng)。
    2021-05-05
  • Matlab使用fft畫出信號(hào)頻譜圖的方法

    Matlab使用fft畫出信號(hào)頻譜圖的方法

    這篇文章主要介紹了Matlab使用fft畫出信號(hào)頻譜圖的方法,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 密碼哈希函數(shù) Bcrypt的最大密碼長(zhǎng)度限制詳解

    密碼哈希函數(shù) Bcrypt的最大密碼長(zhǎng)度限制詳解

    這篇文章主要介紹了密碼哈希函數(shù) Bcrypt的最大密碼長(zhǎng)度限制詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Cordova插件實(shí)現(xiàn)JavaScript與Java的通信的詳細(xì)過(guò)程

    Cordova插件實(shí)現(xiàn)JavaScript與Java的通信的詳細(xì)過(guò)程

    本文將結(jié)合最常用的華為推送服務(wù)Cordova插件,介紹HMS Core用到的JS-Java消息交互方式,講解在JS側(cè)如何調(diào)用Java側(cè)接口,最終實(shí)現(xiàn)HMS Core能力,感興趣的朋友一起學(xué)習(xí)下吧
    2021-06-06
  • 詳解靜態(tài)分析技術(shù)符號(hào)執(zhí)行

    詳解靜態(tài)分析技術(shù)符號(hào)執(zhí)行

    本文提綱絜領(lǐng)的介紹了符號(hào)執(zhí)行,讓大家明白這個(gè)技術(shù)的主要作用和面臨的挑戰(zhàn),領(lǐng)大家入坑。
    2021-05-05
  • 計(jì)算機(jī)網(wǎng)絡(luò)編程MQTT協(xié)議基礎(chǔ)原理詳解

    計(jì)算機(jī)網(wǎng)絡(luò)編程MQTT協(xié)議基礎(chǔ)原理詳解

    這篇文章主要為大家介紹了計(jì)算機(jī)編程MQTT協(xié)議的基礎(chǔ)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-11-11
  • 淺談軟件工程師的自我修養(yǎng)

    淺談軟件工程師的自我修養(yǎng)

    在本文中,我們將探討軟件開發(fā)過(guò)程中關(guān)于角色、重構(gòu)和質(zhì)量的問題。軟件不僅成為了一個(gè)必需品,更成為了一個(gè)競(jìng)爭(zhēng)優(yōu)勢(shì)。因?yàn)楸姸喙緡@軟件而競(jìng)爭(zhēng),軟件開發(fā)相關(guān)的事宜顯得越發(fā)重要。開發(fā)軟件的人—軟件工程師正顯得越發(fā)重要。
    2021-05-05
  • Hbuilder配置Avalon和Vue指令提示的方法詳解

    Hbuilder配置Avalon和Vue指令提示的方法詳解

    HBuilder是DCloud(數(shù)字天堂)推出的一款支持HTML5的Web開發(fā)IDE,下面這篇文章主要給大家介紹了關(guān)于Hbuilder如何配置Avalon和Vue指令提示的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-10-10
  • git merge --ff/--no-ff/--ff-only 三種選項(xiàng)參數(shù)的區(qū)別解析

    git merge --ff/--no-ff/--ff-only 三種選項(xiàng)參數(shù)的區(qū)別解析

    這篇文章主要介紹了git merge --ff/--no-ff/--ff-only 三種選項(xiàng)參數(shù)的區(qū)別解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 作為程序員必須了解的縮寫和專業(yè)名詞

    作為程序員必須了解的縮寫和專業(yè)名詞

    這篇文章主要介紹了作為程序員必須了解的縮寫和專業(yè)名詞,文中講解非常詳細(xì),對(duì)想學(xué)編程的朋友有所幫助,感興趣的可以了解下
    2020-07-07

最新評(píng)論

巩义市| 若羌县| 霍山县| 绍兴县| 广安市| 吉安县| 凤城市| 唐河县| 嘉荫县| 绥滨县| 高淳县| 汉阴县| 西宁市| 兴国县| 乐陵市| 彭泽县| 仁怀市| 简阳市| 江安县| 咸丰县| 竹溪县| 铁岭县| 青铜峡市| 北辰区| 敖汉旗| 仪征市| 望谟县| 枣阳市| 靖西县| 清水河县| 嘉义县| 龙游县| 监利县| 天等县| 垫江县| 乐至县| 四子王旗| 武隆县| 澄江县| 玉龙| 南江县|