【问题标题】:WCF error: System.ServiceModel.CommunicationException the maximum message size quota for incoming messages has been exceededWCF 错误:System.ServiceModel.CommunicationException 已超出传入消息的最大消息大小配额
【发布时间】:2014-03-13 14:43:32
【问题描述】:

我们发现此错误与 http 文件传输请求有关

WCF 错误,System.ServiceModel.CommunicationException 已超出传入消息的最大消息大小配额。

我看过几篇与这条消息相关的帖子,一般的反应是把它加到最大。

如果您想强制限制文件传输大小怎么办。我们希望允许用户仅传输 60MB (62914560) 或更小的文件。

应将哪个设置设置为 62914560? maxStringContentLengthmaxArrayLength?

请求周围的信封是否有开销?换句话说,允许的最大下载文件大小是 60MB?还是更小,文件大小 + 请求开销

如果是后者,这个可以确定吗。开销是固定大小吗?或者开销是其他设置的函数(例如maxBytesPerRead)?

SSL 会影响文件(整个消息)的大小吗?多少钱?

我正试图准确了解它的工作原理。更改大小似乎是任意的。我怎么知道正确的设置值是允许下载只有 60MB 或更少的文件。我看到的一件事是 53776931 字节的 zip 文件会引发异常。在下载之前,我正在检查文件的大小,它显然小于 60MB。是什么导致邮件超过最大邮件大小?

【问题讨论】:

    标签: c# wcf


    【解决方案1】:

    您需要在客户端和服务器配置中指定 readerQuota。

    【讨论】:

      【解决方案2】:

      您应该启用日志记录并查看您的消息到底有多大 - 这是我遇到类似问题时解决它的唯一方法Logging WCF message sizes

      不要试图将 maxmessagesize 调到最大值,如果它真的试图返回那么大的消息,它会耗尽你的应用程序的内存。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-03
        • 2014-02-01
        • 2020-03-18
        • 2014-10-23
        • 1970-01-01
        • 1970-01-01
        • 2010-12-15
        • 1970-01-01
        相关资源
        最近更新 更多