Performance WCF Web服务-自定义绑定(二进制编码)比basicHttpBinding慢
我有一个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.configPerformance 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版本
<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>