2014-09-10 77 views
1

我正嘗試使用CRM Web服務將聯繫人記錄插入/更新到CRM 2011(內部部署RO15)。我使用SSIS包從我的源代碼獲取數據,並使用C#(腳本組件)將它們插入到CRM中。使用SSIS和C#進入客戶關係管理系統的CRUD流程2011

本來我一次只使用一行,使用ContactInput_ProcessInputRow(ContactInputBuffer Row)方法。這會一次插入一行,在讀取this後,我使用ContactInput_ProcessInput(ContactInputBuffer Buffer)方法更改爲批量導入。

這似乎解決了問題,當它開始插入行時。但約1500行後,我得到超時錯誤。通常情況下,我會更改配置文件中的客戶端超時設置,但因爲這是通過腳本組件完成的,所以我沒有看到配置文件。我還將服務器端的超時限制增加到24小時。

我使用的C#代碼與上述帖子(鏈接)的批量插入代碼相同。我已經將緩衝區大小更改爲10,因爲這是Scribe使用的,並且與我們擁有的CRM 2011安裝程序配合良好。

如何解決此超時問題?我期望每集成大約有5K條記錄。

+0

SSIS或.Net/WCF發生超時錯誤嗎? – 2014-09-10 14:59:30

+0

那麼更改緩衝區大小仍然會導致超時問題? – Daryl 2014-09-10 17:44:17

+0

嗨達里爾,是的改變緩衝區的大小延長了會話時間,但我仍然得到相同的錯誤。 – kmria 2014-09-18 16:19:42

回答

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> 

我做了很少的跟進測試,我設法插入/更新大約7K記錄沒有錯誤。我希望這能幫助像我這樣失去的靈魂!

相關問題