我已經找到了解決我的問題的一整天的問題(也在StackOverflow上),但不幸的是沒有任何工作。我仍然收到錯誤:傳入消息的最大消息大小配額(65536)已被超出。 Silverlight + WCF
「傳入郵件的最大郵件大小限額(65536)已被超出。要增加限額,請在適當的綁定元素上使用MaxReceivedMessageSize屬性。
有數以百計的解決方案,但基於.config文件在項目中。我有一個WCF服務和Silverlight客戶端。它們之間的綁定僅通過編程方式設置。
這裏有一個WCF服務配置塊代碼:
private ServiceHostBase CreateService(Uri baseAddress)
{
var serviceHost = new ServiceHost(typeof(MyService), new[] { baseAddress });
var endPointWithoutSSL = new BasicHttpBinding()
{
MaxBufferSize = int.MaxValue,
MaxReceivedMessageSize = int.MaxValue,
MaxBufferPoolSize = int.MaxValue,
};
serviceHost.AddServiceEndpoint(typeof(MyService), endPointWithoutSSL, baseAddress.ToString());
return serviceHost;
}
在客戶終端的Silverlight項目的配置是這樣的:
private BasicHttpBinding GetBinding()
{
var securityMode = GetSecurityMode();
var binding = new BasicHttpBinding(securityMode)
{
SendTimeout = TimeSpan.FromMinutes(10),
OpenTimeout = TimeSpan.FromMinutes(10),
CloseTimeout = TimeSpan.FromMinutes(10),
ReceiveTimeout = TimeSpan.FromMinutes(10),
TextEncoding = Encoding.UTF8,
TransferMode = TransferMode.Buffered,
MaxReceivedMessageSize = int.MaxValue,
MaxBufferSize = int.MaxValue,
};
return binding;
}
不管我怎麼努力,該MaxReceivedMessageSize設爲客戶端65k。 Microsoft WCF跟蹤工具顯示拋出異常後超過最大收到郵件大小。
更有意思的是,在端點中啓用BasicHttpSecurityMode.Transport不會導致此錯誤。 但是,我必須設置我的端點沒有BasicHttpSecurityMode.Transport選項。
任何幫助,將不勝感激。
感謝
您確定在構建客戶端時使用此綁定嗎?你能展示你是如何創建你的代理? –