CRUD-процессы с использованием SSIS и C # в CRM 2011

1

Я пытаюсь вставить/обновить записи контактов в CRM 2011 (по принципу RO15), используя веб-службы CRM. Я использую пакет SSIS для получения данных из моего источника и использования С# (компонента скрипта), вставляющего их в CRM.

Первоначально я использовал одну строку за раз, используя метод ContactInput_ProcessInputRow (ContactInputBuffer Row). Это будет вставлять одну строку за раз, и после прочтения этого сообщения я изменил его на массовый импорт, используя метод ContactInput_ProcessInput (ContactInputBuffer Buffer).

Похоже, что проблема сначала возникает, когда начинается вставка строк. Но после примерно 1500 строк я получаю ошибку тайм-аута. Обычно я изменяю настройки тайм-аута на стороне клиента в файле конфигурации, но поскольку это выполняется через компонент сценария, я не вижу конфигурационный файл. У меня также увеличен лимит времени ожидания на стороне сервера до 24 часов.

Код С#, который я использую, такой же, как и объемный код вставки из сообщения (связанного) выше. Я изменил размер буфера на 10, поскольку это то, что Scribe использует и хорошо работает с установленной нами CRM-установкой 2011 года.

Как исправить эту проблему с таймаутом? Я ожидаю иметь около 5 тыс. Записей за интеграцию.

  • 0
    Ошибка тайм-аута из служб SSIS или .Net / WCF?
  • 0
    Таким образом, изменение размера буфера все еще вызывает проблемы тайм-аута?
Показать ещё 1 комментарий
Теги:
ssis
web-services
dynamics-crm-2011
timeout

1 ответ

0

Спасибо за ответы. Я думаю, что исправил эту проблему, добавив следующий блок кода в файл app.config (в компоненте скрипта).

    <system.web>
    <httpRuntime executionTimeout="12000"/>
</system.web>

<system.serviceModel>
    <bindings>
        <netTcpBinding>
            <binding name="longTimeoutBinding"
              receiveTimeout="02:00:00" sendTimeout="02:00:00" closeTimeout="02:00:00" openTimeout="02:00:00">
                <security mode="None"/>
            </binding>
        </netTcpBinding>
    </bindings>

    <services>
        <service name="longTimeoutService"
          behaviorConfiguration="longTimeoutBehavior">
            <endpoint address="net.tcp://localhost/longtimeout/"
              binding="netTcpBinding" bindingConfiguration="longTimeoutBinding" />
        </service>
        </services>
        </system.serviceModel>

Я провел несколько тестов, и мне удалось вставить/обновить около 7 тыс. Записей без ошибок. Надеюсь, это поможет любой потерянной душе, как я!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню