• WCF配置文件


    因为要上传较大的图片,WCF传递数组的默认的最大数组16KB就不够了。以下讲解配置内容。

    服务端配置

    这里一个WCF项目中有1个服务,配置文件如下(位于system.serviceModel标签中):

    <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这个服务要扩大一下数据流大小限制,发现其它两个服务也不能不写了,只得把它们也配置出来。

    service标签中的name是服务类的完全限定名称,包括命名空间、类名。behaviorConfiguration也要配。service中的endpoint若使用默认配置,就不需要配bindingConfiguration属性了。注意,这里bindingConfiguration的配置是对应下面bindings标签的内容的。contract是服务类继承的接口。

    bindings标签中的内容凭借名字可以明白意思,就不需要赘述了。详见使用配置文件配置服务

    客户端配置

    客户端的配置再添加对服务的引用后便会自动生成默认的。这里将ProductService这个服务修改如下:

    <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.

  • 相关阅读:
    JavaScript函数节流与函数去抖
    AngularJS 中文资料+工具+库+Demo 大搜集
    一个意想不到的Javascript内存泄漏
    mac添加Chromedriver
    selenium3+python自动化1——input标签上传文件
    python笔记1——xml文件的创建,读写,与增删改查
    C# 单例模式
    java的byte数组转换成在[0,255]范围内
    【转载】Stack Overflow: The Architecture
    C# 号码归属地查询算法(根据Android来电归属地二进制文件查询修改)
  • 原文地址:https://www.cnblogs.com/szhx/p/3618109.html
Copyright © 2020-2023  润新知