2014-09-24 81 views
3

我有一個WCF服務和一個簡單的aspx頁面,它從一個控制檯應用程序獲取消息並將其發送到另一個控制檯應用程序。當消息(xml格式)長度大約爲6000000時,它工作正常,但是當消息大小加倍時,它會停止引發以下異常當消息大小很大時WCF上的FaultedException

「通信對象System.ServiceModel.Channels.ServiceChannel無法使用因爲它處於故障狀態,因此進行通信。「

我已經跟蹤了它,並且我的發件人應用程序發送了消息,我的.aspx頁面獲取了它,將它發送到我的接收器應用程序時發生異常。這是代碼。

public void SendMessage(string message) 
{ 
    try 
    { 
     using (Receiver rec = new Receiver()) 
     { 
       rec.SetMessage(message); 
     } 
    } 
    catch (Exception e) 
    { 
     Response.Write(e.Message); 
     Response.Write(e.StackTrace); 
    } 
} 

我嘗試了一堆配置設置,但沒有解決問題。可能是什麼原因?

在此先感謝。

回答

4

其簡單。當消息大小超過允許的大小,即6000000時,它將引發FaultException。由於FaultException是從Exception擴展而來的,因此正確地在代碼中捕獲它。我沒有看到這方面的任何問題,而不是事實,如果你的數據很大,也增加了大小限制。

UPDATE: 對於收到的最大的錯誤,你需要做到以下幾點: 最大郵件大小配額傳入消息(65536)....要增加配額,使用MaxReceivedMessageSize財產

或者從代碼:

WebHttpBinding binding = new WebHttpBinding(); 
binding.MaxReceivedMessageSize = 2147483647; 

同樣在客戶端也。

+0

謝謝。我需要發送數據而不管它的大小如何,我應該增加配置文件中的值嗎?如果是這樣,哪一個? – osberk 2014-09-24 15:01:39

+0

是的最大接收大小需要增加 – 2014-09-24 15:03:06

+0

是的,它的工作。謝謝。不幸的是,我沒有足夠的代表投票給你。我會當我有。謝謝。 – osberk 2014-09-24 15:13:15

相關問題