【发布时间】:2014-12-11 11:11:24
【问题描述】:
我们有 WCF 服务,有时,通过新建立的通道完成的请求需要 3 到 8 秒,即使使用池通道的并发请求是即时处理的。换句话说,系统总体上是响应式的。
当时并发处理的请求数小于 10,远低于任何配置的上限,并且并发会话数也不应该达到任何限制。这是服务的设置方式:
NetTcpBinding binding = new NetTcpBinding(SecurityMode.None);
binding.ReceiveTimeout = TimeSpan.MaxValue;
binding.ReaderQuotas.MaxArrayLength = int.MaxValue;
binding.ReaderQuotas.MaxStringContentLength = int.MaxValue;
binding.ReaderQuotas.MaxDepth = int.MaxValue;
binding.ReaderQuotas.MaxBytesPerRead = int.MaxValue;
binding.ReaderQuotas.MaxNameTableCharCount = int.MaxValue;
binding.MaxReceivedMessageSize = int.MaxValue;
binding.MaxBufferSize = int.MaxValue;
binding.MaxBufferPoolSize = int.MaxValue;
binding.MaxConnections = 256;
host.AddServiceEndpoint(contract, binding, address);
host.Description.Behaviors.Remove(typeof(ServiceDebugBehavior));
host.Description.Behaviors.Remove(typeof(ServiceMetadataBehavior));
host.Description.Behaviors.Remove(typeof(ServiceThrottlingBehavior));
host.Description.Behaviors.Add(new ServiceMetadataBehavior { HttpGetEnabled = false });
host.Description.Behaviors.Add(new ServiceThrottlingBehavior { MaxConcurrentCalls = 256, MaxConcurrentSessions = 1000, MaxConcurrentInstances = 1000 });
host.Open();
知道可能是什么问题吗?
【问题讨论】: