WCF配置文件

由於要上傳較大的圖片,WCF傳遞數組的默認的最大數組16KB就不夠了。如下講解配置內容。數組

服務端配置

這裏一個WCF項目中有1個服務,配置文件以下(位於system.serviceModel標籤中):ide

<behaviors>
  <serviceBehaviors>
    <behavior name="MyBehavior">
      <!– 爲避免泄漏元數據信息,請在部署前將如下值設置爲 false 並刪除上面的元數據終結點 –>
      <serviceMetadata httpGetEnabled="true" />
      <!– 要接收故障異常詳細信息以進行調試,請將如下值設置爲 true。在部署前設置爲 false 以免泄漏異常信息 –>
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>

<services>
  <!– The name of the service –>
  <service name="OnlineShopService.Service.ProductService" behaviorConfiguration="MyBehavior">
    <endpoint binding="basicHttpBinding" bindingConfiguration="higherMessageSize" contract ="OnlineShopService.Service.IProductService">
    </endpoint>
  </service>
</services>

<bindings>
  <basicHttpBinding>
    <binding name="higherMessageSize" maxReceivedMessageSize ="6553600″>"
      <readerQuotas maxDepth="32″" maxStringContentLength="8192″" maxArrayLength="1638400″" maxBytesPerRead="4096″" maxNameTableCharCount="16384″ />"
    </binding>
  </basicHttpBinding>
</bindings>
View Code

原本用默認配置的話這些都不用寫了,但由於ProductService這個服務要擴大一下數據流大小限制,發現其它兩個服務也不能不寫了,只得把它們也配置出來。ui

service標籤中的name是服務類的徹底限定名稱,包括命名空間、類名。behaviorConfiguration也要配。service中的endpoint若使用默認配置,就不須要配bindingConfiguration屬性了。注意,這裏bindingConfiguration的配置是對應下面bindings標籤的內容的。contract是服務類繼承的接口。spa

bindings標籤中的內容憑藉名字能夠明白意思,就不須要贅述了。詳見使用配置文件配置服務調試

客戶端配置

客戶端的配置再添加對服務的引用後便會自動生成默認的。這裏將ProductService這個服務修改以下:code

<binding name="BasicHttpBinding_IProductService" closeTimeout="00:01:00″" openTimeout="00:01:00″" receiveTimeout="00:10:00″" sendTimeout="00:01:00″" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="6553600" maxBufferPoolSize="524288″" maxReceivedMessageSize="6553600" messageEncoding="Text" textEncoding="utf-8″" transferMode="Buffered" useDefaultWebProxy="true">
  <readerQuotas maxDepth="32″" maxStringContentLength="8192″" maxArrayLength="1638400" maxBytesPerRead="4096″" maxNameTableCharCount="16384″ />"
  <security mode="None">
    <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
    <message clientCredentialType="UserName" algorithmSuite="Default" />
  </security>
</binding>
View Code

下劃線是修改的地方,只是加了兩個0.blog

相關文章
相關標籤/搜索