Операция открытия не завершена в течение заданного времени ожидания 00:01:00 - AX 2012 с использованием AIF/WCF

У меня проблема с AIF в AX 2012 когда он имеет дело с большим количеством данных, что занимает много времени. Я использую адаптер NetTCP и у меня возникает следующее исключение при использовании веб-службы с использованием приложения WebForm.

The open operation did not complete within the allotted timeout of 00:01:00. 
The time allotted to this operation may have been a portion of a longer timeout.

InnerException:The socket transfer timed out after 00:00:59.9990234. You have exceeded the timeout set on your binding.
 The time allotted to this operation may have been a portion of a longer timeout.

InnerException:A connection attempt failed because the connected party did not properly respond after a period of time, 
or established connection failed because connected host has failed to respond

Код приложения в основном (я даже открываю и закрываю соединение в каждом цикле), как в теме Сообщение об ошибке: Операция открытия не завершена в течение выделенного времени ожидания:

public void CreateFromCSVFile(Stream fileStream)
        {
            ExportingData_Test.VendVendServices.VendTableServiceClient VenSvcClient = new VendTableServiceClient();

            try
            {
                List<string[]> VendData = Helper.ImportCSVFile.ParseCSVFile(fileStream, true);

                foreach (string[] vendor in VendData)
                {
                      VenSvcClient = new VendTableServiceClient();

                       VenSvcClient.Endpoint.Binding.OpenTimeout = new TimeSpan(0, 1, 10, 0);
                       VenSvcClient.Endpoint.Binding.ReceiveTimeout = new TimeSpan(0, 1, 10, 0);
                       VenSvcClient.Endpoint.Binding.SendTimeout = new TimeSpan(0, 1, 10, 0);
                       VenSvcClient.Endpoint.Binding.CloseTimeout = new TimeSpan(0, 1, 10, 0);

                        VenSvcClient.Open();

                        //DO SOME OPERATION IN HERE
                        //Create the Vendor

                        entityKey = VenSvcClient.create(callContext, axdVendor);
                        VenSvcClient.Close();
                 }
            }
            catch (Exception ex)
            {
                String message = ex.Message;
            }
           finally
           {
               VenSvcClient.Close();
           }
        }

Я попытался настроить расширенный порт с помощью редактора конфигурации служб Microsoft, который используется для настройки WCF, увеличивая большинство свойств:

В хосте:

  1. CloseTimeout до 00:10:00
  2. OpenTimeout до 00:10:00

В привязках:

  1. MaxReceivedMessageSize до 1004857600. как здесь рекомендовано.
  2. MaxBufferSize до 1004857600.
  3. MaxBufferPoolSize до 1004857600.
  4. ReceivedTimeout 01:10:00
  5. SendTimeout 01:10:00
  6. MaxBytesPerRead 1004857600
  7. InactivityTimeout 01:10:00
  8. ReliableSessionProperty false

Но я все еще получаю ту же ошибку.

1 ответ

Решение

Та же ошибка упоминается здесь.

Но совет заключается в том, чтобы отредактировать параметры ReceiveTimeout и SendTimeout с помощью редактора конфигурации службы Microsoft WCF, что вы, возможно, и сделали. Может быть, дважды проверьте, что вы попали в правильные порты.

Другие вопросы по тегам