消息大小较大时WCF出现FaultedException
本文关键字:出现 FaultedException WCF 消息 | 更新日期: 2023-09-27 18:24:17
我有一个WCF服务和一个简单的aspx页面,该页面从一个控制台应用程序获取消息并将其发送到另一个控制台程序。当消息(xml格式)长度约为6000000时,它工作正常,但当消息大小加倍时,它停止抛出以下异常
通信对象System.ServiceModel.Channels.ServiceChannel不能用于通信,因为它处于Faulted状态。
我已经跟踪了它,我的发件人应用程序发送了消息,我的.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);
}
}
我尝试了很多配置设置,但都没有解决问题。原因可能是什么?
提前谢谢。
它很简单。当消息大小超过允许的大小(即6000000)时,它会抛出FaultException。由于FaultException是从Exception扩展而来的,因此它在代码中被正确地捕获。我认为这没有任何问题,而不是如果你的数据很大,也要增加大小限制。
更新:对于最大接收错误,您需要执行以下操作:传入邮件的最大邮件大小配额(65536)。。。。要增加配额,请使用MaxReceivedMessageSize
属性
或者从代码:
WebHttpBinding binding = new WebHttpBinding();
binding.MaxReceivedMessageSize = 2147483647;
同样在客户端。