Performance 如何应用WCF服务的性能配置?

Performance 如何应用WCF服务的性能配置?,performance,wcf,configuration,metrics,throttling,Performance,Wcf,Configuration,Metrics,Throttling,我有一个已连接的WCF服务,其中客户端配置代码如下: var method = typeof(XmlSerializer).GetMethod("set_Mode", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); method.Invoke(null, new object[] { 1 }); BasicHttpsBinding httpBd = new BasicHttpsBinding(BasicHt

我有一个已连接的WCF服务,其中客户端配置代码如下:

var method = typeof(XmlSerializer).GetMethod("set_Mode", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static);
method.Invoke(null, new object[] { 1 });
BasicHttpsBinding httpBd = new BasicHttpsBinding(BasicHttpsSecurityMode.Transport);
httpBd.MaxReceivedMessageSize = Int32.MaxValue;
httpBd.MaxBufferSize = Int32.MaxValue;
var client = new FindServicePortTypeClient(httpBd,
new EndpointAddress(_settings.Url));

var bd = client.Endpoint.Binding as BasicHttpsBinding;
bd.Security.Mode = BasicHttpsSecurityMode.Transport;
bd.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;

client.ClientCredentials.UserName.UserName = _settings.User;
client.ClientCredentials.UserName.Password = _settings.Password;

在服务上,我必须配置一些性能指标,如“关系深度”。如何在WCF中实现这个

,您可以使用Service EthruttLink行为来控制WCF服务性能。使用此行为,您可以微调Windows通信基础应用程序的性能。

您可以在配置文件中配置这些属性的值

    <behaviors>
  <serviceBehaviors>
    <behavior  name="Throttled">
      <serviceThrottling 
        maxConcurrentCalls="1" 
        maxConcurrentSessions="1" 
        maxConcurrentInstances="1"
      />
      <serviceMetadata 
        httpGetEnabled="true" 
        httpGetUrl=""
      />
    </behavior>
  </serviceBehaviors>
</behaviors>

MaxConcurrentSessions:服务主机接受的最大会话数。默认值为处理器计数的100倍。 MaxConcurrentCalls:服务中活动消息的上限。默认值是处理器计数的16倍。 MaxConcurrentInstances:一次服务中InstanceContext对象的最大数量。默认值是MaxConcurrentSessions的值和MaxConcurrentCalls的值之和

Windows通信基础包括一大组性能计数器,以帮助您度量应用程序的性能。有关性能计数器的更多信息,请参阅以下链接:


非常感谢您的建议,我也尝试了同样的方法,但不幸的是没有成功。这种行为似乎是通过WSDL控制的,并且受到SmartOrg配置的限制,仍然在战斗……你是对的。这些配置需要在服务器端进行配置。