Производительность службы WCF при одновременном вызове
Ниже служба размещается в службах IIS с привязкой wshttpbinding
сервисный код
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Single, AddressFilterMode = AddressFilterMode.Any)] public class Service1 : IService1 {} [OperationBehavior(TransactionScopeRequired = true)] public File_Data CopyFile(File_Data oFileData) {}
обслуживание вызовов
#region ..... Binding Configuration ..... _binding = new WSHttpBinding(); _binding.SendTimeout = new TimeSpan(0, 30, 0); _binding.ReceiveTimeout = new TimeSpan(0, 30, 0); _binding.OpenTimeout = new TimeSpan(0, 30, 0); _binding.CloseTimeout = new TimeSpan(0, 30, 0); _binding.MaxBufferPoolSize = Int32.MaxValue; _binding.MaxReceivedMessageSize = Int32.MaxValue; _binding.ReaderQuotas.MaxDepth = Int32.MaxValue; _binding.ReaderQuotas.MaxStringContentLength = Int32.MaxValue; _binding.ReaderQuotas.MaxArrayLength = Int32.MaxValue; _binding.ReaderQuotas.MaxBytesPerRead = Int32.MaxValue; _binding.ReaderQuotas.MaxNameTableCharCount = Int32.MaxValue; _binding.Security.Mode = SecurityMode.None; _binding.TransactionFlow = true; //_binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None; #endregion #region .... End point Configuration .... _endpoint = new EndpointAddress(VirtualDir+ "\\" + "Service1.svc"); #endregion <pre> public File_Data Copy_File(File_Data objFile_Data) { ChannelFactory<IService1> Channel = null; try { Channel = new ChannelFactory<IService1>(_binding, _endpoint); IService1 proxy = Channel.CreateChannel(); objFile_Data = proxy.CopyFile(objFile_Data); } catch (Exception ex) { msgError = ex.Message; } finally { if (Channel != null) { Channel.Close(); Channel.Abort(); } Channel = null; } return objFile_Data; }
когда служба вызывается от нескольких клиентов требуется время для завершения операции
как я могу настроить поведение службы для повышения производительности службы
Что я уже пробовал:
попробовал сменить тему
[ServiceBehavior]