2014-10-30 33 views
1

對不起,長標題。錯誤消息爲什麼單元測試AIF:傳入消息的最大消息大小配額已被超出

我正在爲C#中的Dynamics AX編寫一個單元測試框架來測試我們正在使用動態連接器的集成項目。

我們的時間表測試的基本結構是:

  1. 創建數據庫的快照(AX不允許mock對象)
  2. 登錄到一個AX實例,創建基本數據,如客戶,項目等...註銷
  3. 用於測試
  4. 後使用調用文檔服務
  5. 時間表創建時間表項檢索時間表
  6. 斷言

在某些測試中,我們遇到的第5點的錯誤信息被說

System.ServiceModel.CommunicationException:最大郵件大小配額傳入消息(65536)已超過。要增加配額,請在適當的綁定元素上使用MaxReceivedMessageSize屬性。 ---> System.ServiceModel.QuotaExceededException:傳入消息的最大消息大小配額(65536)已被超出。要增加配額,請在適當的綁定元素上使用MaxReceivedMessageSize屬性。

我已經分手消息一分爲二,因爲它聽起來就像兩個不同的錯誤

TestCleanup方法扔下例外。 System.ServiceModel.CommunicationObjectFaultedException:System.ServiceModel.CommunicationObjectFaultedException:通信對象,System.ServiceModel.Channels.ServiceChannel,不能用於通信,因爲它是在故障狀態

隨着我們使用AIF我可以」做T的頂部,因爲XML綁定是無處可看(據我們所知)

奇怪的是,這個錯誤似乎沒有來consitently但我們cleaining了一切,我們可以在測試中看到。

任何人都可以幫助我嗎?即使它只是建議嘗試。

另一個要注意的是,這些錯誤往往會導致Dynamics AX的服務崩潰,這使得調試一個完整的疼痛在背面

回答

3

更改AIF端口的配置。 您必須更改綁定的maxReceivedMessageSize

例子:

<configuration> 
    <system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
     <binding name="DefaultServiceGroupBinding" 
      maxReceivedMessageSize="104857600" 
      ... 
     /> 
     </netTcpBinding> 
    </bindings> 
    ... 
<configuration> 

AIF WCF Binding Configuration

+0

不幸的是沒有工作。當我進入服務時,MaxReceivedMessageSize已經設置爲該數字。儘管我嘗試加倍,但我仍然得到相同的錯誤。出於好奇,你是如何訪問XML的? – Keithin8a 2014-10-30 10:40:19

+1

看來你的測試客戶端也有這個限制。在C#項目'app.config'文件中更改WCF配置綁定(您也可以右鍵單擊Visual Studio中的* app.config *並選擇*編輯WCF配置*)。 該文件是臨時存儲的 - 使用*另存爲... *來檢查臨時文件。 – Matej 2014-10-30 11:05:46

+0

感謝您的幫助。幾個獎勵問題:)在每次測試運行後,服務似乎都崩潰了,這是一個相關的症狀?另外我和某人說話,他們說app.config文件是自動生成的,你知道他們爲什麼會自動生成錯誤嗎? 感謝您的幫助 – Keithin8a 2014-10-30 11:39:24

相關問題