Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance WCF Web服务-自定义绑定(二进制编码)比basicHttpBinding慢_Performance_Wcf_Optimization_Wcf Binding - Fatal编程技术网

Performance WCF Web服务-自定义绑定(二进制编码)比basicHttpBinding慢

Performance WCF Web服务-自定义绑定(二进制编码)比basicHttpBinding慢,performance,wcf,optimization,wcf-binding,Performance,Wcf,Optimization,Wcf Binding,我有一个ASP.NETMVC应用程序,它从WCFWeb服务获取数据。它们都托管在同一台服务器和IIS 7.5上 最近,我的MVC应用程序的点击率开始增加,需要进行一些优化。GoogleInsight的结果显示服务器响应时间可能是个问题,所以我决定先从优化WCF服务开始。(因为mvc应用程序不直接使用数据库,而是使用WCF服务获取数据) 因为我不能在实时应用程序上实现这些更改,所以我创建了MVC应用程序和WCF服务的PTR版本 live web服务使用basicHttpBinding,在PTR版本

我有一个ASP.NETMVC应用程序,它从WCFWeb服务获取数据。它们都托管在同一台服务器和IIS 7.5上

最近,我的MVC应用程序的点击率开始增加,需要进行一些优化。GoogleInsight的结果显示服务器响应时间可能是个问题,所以我决定先从优化WCF服务开始。(因为mvc应用程序不直接使用数据库,而是使用WCF服务获取数据)

因为我不能在实时应用程序上实现这些更改,所以我创建了MVC应用程序和WCF服务的PTR版本

live web服务使用basicHttpBinding,在PTR版本中,我使用binaryMessageEncoding切换到customBinding,但是,两个针对两个不同应用程序的Google insight报告显示,live版本实际上比PTR版本快

我不太明白结果是怎么回事。是否有什么地方我做错了,或者是否期望binaryMessageEncoding比basicHttpBinding的text/xml编码器慢

我正在使用.NETFramework4.5,我的服务正在处理每个表包含大约2-10K条记录的数据库表

GoogleInsight的结果是:实时应用程序的服务器响应时间为2.1秒,PTR版本的服务器响应时间为4秒

我还在IIS上启用了缓存和压缩

以下是实时应用程序的web.config文件:

实时WCF Web服务器Web.config

    <system.serviceModel>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="True" aspNetCompatibilityEnabled="True" />

    <behaviors>
      <serviceBehaviors>
        <behavior name="Development">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <dataContractSerializer ignoreExtensionDataObject="false" maxItemsInObjectGraph="2147483646" />
          <serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="800" maxConcurrentInstances="400" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

    <bindings>
      <basicHttpBinding>
        <binding    name="KPHttpBinding" 
                    maxBufferSize="2147483647" 
                    maxReceivedMessageSize="2147483647" 
                    closeTimeout="01:50:00" 
                    openTimeout="01:50:00" 
                    sendTimeout="01:50:00" 
                    receiveTimeout="01:50:00">

          <readerQuotas maxDepth="128" 
                        maxStringContentLength="2147483647" 
                        maxArrayLength="16384" 
                        maxBytesPerRead="4096" 
                        maxNameTableCharCount="16384" />

          <security mode="None" />
        </binding>
      </basicHttpBinding>
    </bindings>

    <diagnostics performanceCounters="All" />

    <services>
      <service name="KP.ServiceLib.NewsService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.INewsService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.UserService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IUserService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.BlogService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IBlogService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.ContentService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IContentService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.MediaService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IMediaService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>

  </system.serviceModel>
<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="KPHttpBinding" maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647">
        </binding>
      </basicHttpBinding>
    </bindings>

    <behaviors>
        <endpointBehaviors>
            <behavior name="ServiceBehaviour">
                <dataContractSerializer maxItemsInObjectGraph="2147483647" />
            </behavior>
        </endpointBehaviors>
    </behaviors>

    <client>
      <endpoint address="http://mydomain.com/BlogService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPBlogService.IBlogService" name="BasicHttpBinding_IBlogService" />
      <endpoint address="http://mydomain.com/ContentService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPContentService.IContentService" name="BasicHttpBinding_IContentService" />
      <endpoint address="http://mydomain.com/NewsService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPNewsService.INewsService" name="BasicHttpBinding_INewsService" />
      <endpoint address="http://mydomain.com/UserService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPUserService.IUserService" name="BasicHttpBinding_IUserService" />
      <endpoint address="http://mydomain.com/MediaService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPMediaService.IMediaService" name="BasicHttpBinding_IMediaService" />
    </client>
  </system.serviceModel>
<system.serviceModel>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="True" aspNetCompatibilityEnabled="True" />

    <behaviors>
      <serviceBehaviors>
    <behavior name="Production">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true" />
        <dataContractSerializer ignoreExtensionDataObject="true" maxItemsInObjectGraph="2147483646" />
        <serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="100" maxConcurrentInstances="100" />
    </behavior>
      </serviceBehaviors>
    </behaviors>

    <bindings>
      <customBinding>
        <binding name="BinaryHttpBinding">
          <reliableSession />
          <binaryMessageEncoding compressionFormat="GZip" maxSessionSize="2147483647" />
          <httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
        </binding>
      </customBinding>
    </bindings>

    <services>
      <service name="KP.ServiceLib.NewsService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.INewsService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.UserService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IUserService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.BlogService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IBlogService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.ContentService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IContentService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.MediaService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IMediaService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>

  </system.serviceModel>
<system.serviceModel>
    <bindings>
      <customBinding>
        <binding name="BinaryHttpBinding">
          <reliableSession />
          <binaryMessageEncoding compressionFormat="GZip" maxSessionSize="2147483647" />
          <httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
        </binding>
      </customBinding>
    </bindings>

    <behaviors>
      <endpointBehaviors>
        <behavior name="Production">
          <dataContractSerializer ignoreExtensionDataObject="true" maxItemsInObjectGraph="66560" />
        </behavior>
      </endpointBehaviors>
    </behaviors>

    <client>
      <endpoint address="http://mydomain.com/ptr/NewsService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPNewsService.INewsService" name="BasicHttpBinding_INewsService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/BlogService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPBlogService.IBlogService" name="BasicHttpBinding_IBlogService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/ContentService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPContentService.IContentService" name="BasicHttpBinding_IContentService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/MediaService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPMediaService.IMediaService" name="BasicHttpBinding_IMediaService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/UserService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPUserService.IUserService" name="BasicHttpBinding_IUserService" behaviorConfiguration="Production" />
    </client>
  </system.serviceModel>

实时MVC应用程序web.config

    <system.serviceModel>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="True" aspNetCompatibilityEnabled="True" />

    <behaviors>
      <serviceBehaviors>
        <behavior name="Development">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <dataContractSerializer ignoreExtensionDataObject="false" maxItemsInObjectGraph="2147483646" />
          <serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="800" maxConcurrentInstances="400" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

    <bindings>
      <basicHttpBinding>
        <binding    name="KPHttpBinding" 
                    maxBufferSize="2147483647" 
                    maxReceivedMessageSize="2147483647" 
                    closeTimeout="01:50:00" 
                    openTimeout="01:50:00" 
                    sendTimeout="01:50:00" 
                    receiveTimeout="01:50:00">

          <readerQuotas maxDepth="128" 
                        maxStringContentLength="2147483647" 
                        maxArrayLength="16384" 
                        maxBytesPerRead="4096" 
                        maxNameTableCharCount="16384" />

          <security mode="None" />
        </binding>
      </basicHttpBinding>
    </bindings>

    <diagnostics performanceCounters="All" />

    <services>
      <service name="KP.ServiceLib.NewsService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.INewsService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.UserService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IUserService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.BlogService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IBlogService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.ContentService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IContentService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.MediaService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IMediaService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>

  </system.serviceModel>
<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="KPHttpBinding" maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647">
        </binding>
      </basicHttpBinding>
    </bindings>

    <behaviors>
        <endpointBehaviors>
            <behavior name="ServiceBehaviour">
                <dataContractSerializer maxItemsInObjectGraph="2147483647" />
            </behavior>
        </endpointBehaviors>
    </behaviors>

    <client>
      <endpoint address="http://mydomain.com/BlogService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPBlogService.IBlogService" name="BasicHttpBinding_IBlogService" />
      <endpoint address="http://mydomain.com/ContentService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPContentService.IContentService" name="BasicHttpBinding_IContentService" />
      <endpoint address="http://mydomain.com/NewsService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPNewsService.INewsService" name="BasicHttpBinding_INewsService" />
      <endpoint address="http://mydomain.com/UserService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPUserService.IUserService" name="BasicHttpBinding_IUserService" />
      <endpoint address="http://mydomain.com/MediaService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPMediaService.IMediaService" name="BasicHttpBinding_IMediaService" />
    </client>
  </system.serviceModel>
<system.serviceModel>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="True" aspNetCompatibilityEnabled="True" />

    <behaviors>
      <serviceBehaviors>
    <behavior name="Production">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true" />
        <dataContractSerializer ignoreExtensionDataObject="true" maxItemsInObjectGraph="2147483646" />
        <serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="100" maxConcurrentInstances="100" />
    </behavior>
      </serviceBehaviors>
    </behaviors>

    <bindings>
      <customBinding>
        <binding name="BinaryHttpBinding">
          <reliableSession />
          <binaryMessageEncoding compressionFormat="GZip" maxSessionSize="2147483647" />
          <httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
        </binding>
      </customBinding>
    </bindings>

    <services>
      <service name="KP.ServiceLib.NewsService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.INewsService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.UserService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IUserService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.BlogService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IBlogService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.ContentService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IContentService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.MediaService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IMediaService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>

  </system.serviceModel>
<system.serviceModel>
    <bindings>
      <customBinding>
        <binding name="BinaryHttpBinding">
          <reliableSession />
          <binaryMessageEncoding compressionFormat="GZip" maxSessionSize="2147483647" />
          <httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
        </binding>
      </customBinding>
    </bindings>

    <behaviors>
      <endpointBehaviors>
        <behavior name="Production">
          <dataContractSerializer ignoreExtensionDataObject="true" maxItemsInObjectGraph="66560" />
        </behavior>
      </endpointBehaviors>
    </behaviors>

    <client>
      <endpoint address="http://mydomain.com/ptr/NewsService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPNewsService.INewsService" name="BasicHttpBinding_INewsService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/BlogService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPBlogService.IBlogService" name="BasicHttpBinding_IBlogService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/ContentService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPContentService.IContentService" name="BasicHttpBinding_IContentService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/MediaService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPMediaService.IMediaService" name="BasicHttpBinding_IMediaService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/UserService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPUserService.IUserService" name="BasicHttpBinding_IUserService" behaviorConfiguration="Production" />
    </client>
  </system.serviceModel>

PTR WCF Web服务Web.config

    <system.serviceModel>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="True" aspNetCompatibilityEnabled="True" />

    <behaviors>
      <serviceBehaviors>
        <behavior name="Development">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <dataContractSerializer ignoreExtensionDataObject="false" maxItemsInObjectGraph="2147483646" />
          <serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="800" maxConcurrentInstances="400" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

    <bindings>
      <basicHttpBinding>
        <binding    name="KPHttpBinding" 
                    maxBufferSize="2147483647" 
                    maxReceivedMessageSize="2147483647" 
                    closeTimeout="01:50:00" 
                    openTimeout="01:50:00" 
                    sendTimeout="01:50:00" 
                    receiveTimeout="01:50:00">

          <readerQuotas maxDepth="128" 
                        maxStringContentLength="2147483647" 
                        maxArrayLength="16384" 
                        maxBytesPerRead="4096" 
                        maxNameTableCharCount="16384" />

          <security mode="None" />
        </binding>
      </basicHttpBinding>
    </bindings>

    <diagnostics performanceCounters="All" />

    <services>
      <service name="KP.ServiceLib.NewsService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.INewsService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.UserService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IUserService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.BlogService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IBlogService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.ContentService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IContentService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.MediaService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IMediaService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>

  </system.serviceModel>
<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="KPHttpBinding" maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647">
        </binding>
      </basicHttpBinding>
    </bindings>

    <behaviors>
        <endpointBehaviors>
            <behavior name="ServiceBehaviour">
                <dataContractSerializer maxItemsInObjectGraph="2147483647" />
            </behavior>
        </endpointBehaviors>
    </behaviors>

    <client>
      <endpoint address="http://mydomain.com/BlogService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPBlogService.IBlogService" name="BasicHttpBinding_IBlogService" />
      <endpoint address="http://mydomain.com/ContentService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPContentService.IContentService" name="BasicHttpBinding_IContentService" />
      <endpoint address="http://mydomain.com/NewsService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPNewsService.INewsService" name="BasicHttpBinding_INewsService" />
      <endpoint address="http://mydomain.com/UserService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPUserService.IUserService" name="BasicHttpBinding_IUserService" />
      <endpoint address="http://mydomain.com/MediaService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPMediaService.IMediaService" name="BasicHttpBinding_IMediaService" />
    </client>
  </system.serviceModel>
<system.serviceModel>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="True" aspNetCompatibilityEnabled="True" />

    <behaviors>
      <serviceBehaviors>
    <behavior name="Production">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true" />
        <dataContractSerializer ignoreExtensionDataObject="true" maxItemsInObjectGraph="2147483646" />
        <serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="100" maxConcurrentInstances="100" />
    </behavior>
      </serviceBehaviors>
    </behaviors>

    <bindings>
      <customBinding>
        <binding name="BinaryHttpBinding">
          <reliableSession />
          <binaryMessageEncoding compressionFormat="GZip" maxSessionSize="2147483647" />
          <httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
        </binding>
      </customBinding>
    </bindings>

    <services>
      <service name="KP.ServiceLib.NewsService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.INewsService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.UserService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IUserService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.BlogService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IBlogService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.ContentService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IContentService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.MediaService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IMediaService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>

  </system.serviceModel>
<system.serviceModel>
    <bindings>
      <customBinding>
        <binding name="BinaryHttpBinding">
          <reliableSession />
          <binaryMessageEncoding compressionFormat="GZip" maxSessionSize="2147483647" />
          <httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
        </binding>
      </customBinding>
    </bindings>

    <behaviors>
      <endpointBehaviors>
        <behavior name="Production">
          <dataContractSerializer ignoreExtensionDataObject="true" maxItemsInObjectGraph="66560" />
        </behavior>
      </endpointBehaviors>
    </behaviors>

    <client>
      <endpoint address="http://mydomain.com/ptr/NewsService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPNewsService.INewsService" name="BasicHttpBinding_INewsService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/BlogService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPBlogService.IBlogService" name="BasicHttpBinding_IBlogService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/ContentService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPContentService.IContentService" name="BasicHttpBinding_IContentService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/MediaService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPMediaService.IMediaService" name="BasicHttpBinding_IMediaService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/UserService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPUserService.IUserService" name="BasicHttpBinding_IUserService" behaviorConfiguration="Production" />
    </client>
  </system.serviceModel>

PTR MVC应用程序web.config

    <system.serviceModel>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="True" aspNetCompatibilityEnabled="True" />

    <behaviors>
      <serviceBehaviors>
        <behavior name="Development">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <dataContractSerializer ignoreExtensionDataObject="false" maxItemsInObjectGraph="2147483646" />
          <serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="800" maxConcurrentInstances="400" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

    <bindings>
      <basicHttpBinding>
        <binding    name="KPHttpBinding" 
                    maxBufferSize="2147483647" 
                    maxReceivedMessageSize="2147483647" 
                    closeTimeout="01:50:00" 
                    openTimeout="01:50:00" 
                    sendTimeout="01:50:00" 
                    receiveTimeout="01:50:00">

          <readerQuotas maxDepth="128" 
                        maxStringContentLength="2147483647" 
                        maxArrayLength="16384" 
                        maxBytesPerRead="4096" 
                        maxNameTableCharCount="16384" />

          <security mode="None" />
        </binding>
      </basicHttpBinding>
    </bindings>

    <diagnostics performanceCounters="All" />

    <services>
      <service name="KP.ServiceLib.NewsService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.INewsService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.UserService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IUserService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.BlogService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IBlogService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.ContentService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IContentService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.MediaService" behaviorConfiguration="Development">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="KPHttpBinding" contract="KP.ServiceLib.Interfaces.IMediaService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>

  </system.serviceModel>
<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="KPHttpBinding" maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647">
        </binding>
      </basicHttpBinding>
    </bindings>

    <behaviors>
        <endpointBehaviors>
            <behavior name="ServiceBehaviour">
                <dataContractSerializer maxItemsInObjectGraph="2147483647" />
            </behavior>
        </endpointBehaviors>
    </behaviors>

    <client>
      <endpoint address="http://mydomain.com/BlogService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPBlogService.IBlogService" name="BasicHttpBinding_IBlogService" />
      <endpoint address="http://mydomain.com/ContentService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPContentService.IContentService" name="BasicHttpBinding_IContentService" />
      <endpoint address="http://mydomain.com/NewsService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPNewsService.INewsService" name="BasicHttpBinding_INewsService" />
      <endpoint address="http://mydomain.com/UserService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPUserService.IUserService" name="BasicHttpBinding_IUserService" />
      <endpoint address="http://mydomain.com/MediaService.svc" binding="basicHttpBinding" behaviorConfiguration="ServiceBehaviour" bindingConfiguration="KPHttpBinding" contract="KPMediaService.IMediaService" name="BasicHttpBinding_IMediaService" />
    </client>
  </system.serviceModel>
<system.serviceModel>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="True" aspNetCompatibilityEnabled="True" />

    <behaviors>
      <serviceBehaviors>
    <behavior name="Production">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true" />
        <dataContractSerializer ignoreExtensionDataObject="true" maxItemsInObjectGraph="2147483646" />
        <serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="100" maxConcurrentInstances="100" />
    </behavior>
      </serviceBehaviors>
    </behaviors>

    <bindings>
      <customBinding>
        <binding name="BinaryHttpBinding">
          <reliableSession />
          <binaryMessageEncoding compressionFormat="GZip" maxSessionSize="2147483647" />
          <httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
        </binding>
      </customBinding>
    </bindings>

    <services>
      <service name="KP.ServiceLib.NewsService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.INewsService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.UserService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IUserService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.BlogService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IBlogService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.ContentService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IContentService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

      <service name="KP.ServiceLib.MediaService" behaviorConfiguration="Production">
        <endpoint address="" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="KP.ServiceLib.Interfaces.IMediaService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>

  </system.serviceModel>
<system.serviceModel>
    <bindings>
      <customBinding>
        <binding name="BinaryHttpBinding">
          <reliableSession />
          <binaryMessageEncoding compressionFormat="GZip" maxSessionSize="2147483647" />
          <httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
        </binding>
      </customBinding>
    </bindings>

    <behaviors>
      <endpointBehaviors>
        <behavior name="Production">
          <dataContractSerializer ignoreExtensionDataObject="true" maxItemsInObjectGraph="66560" />
        </behavior>
      </endpointBehaviors>
    </behaviors>

    <client>
      <endpoint address="http://mydomain.com/ptr/NewsService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPNewsService.INewsService" name="BasicHttpBinding_INewsService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/BlogService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPBlogService.IBlogService" name="BasicHttpBinding_IBlogService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/ContentService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPContentService.IContentService" name="BasicHttpBinding_IContentService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/MediaService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPMediaService.IMediaService" name="BasicHttpBinding_IMediaService" behaviorConfiguration="Production" />
      <endpoint address="http://mydomain.com/ptr/UserService.svc"
        binding="customBinding" bindingConfiguration="BinaryHttpBinding"
        contract="KPUserService.IUserService" name="BasicHttpBinding_IUserService" behaviorConfiguration="Production" />
    </client>
  </system.serviceModel>