kedar001 Ответов: 0

Производительность службы 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]

0 Ответов