Performance 如何应用WCF服务的性能配置?
我有一个已连接的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
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配置的限制,仍然在战斗……你是对的。这些配置需要在服务器端进行配置。