WCF 错误 - 已超出传入消息的最大消息大小配额 (65536) [重复]

2024-04-13

我的设置:

  • 托管在 IIS Express 中的 ASP.NET 客户端
  • 控制台应用程序中托管的 WCF 服务
  • 在管理模式下运行 Visual Studio.NET 2012

我试图从 WCF 服务返回 2 个 List 对象。当我只返回 1 个 List 对象时,我的设置工作正常。但是当我返回 2 个 List 对象时,我收到错误:

已超出传入消息的最大消息大小配额 (65536)。要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。

我知道这个问题已经在这个网站和其他网站上被问过很多次了。我已经尝试了互联网上发布的几乎所有内容以及配置文件的各种组合,但这对我来说仍然没有成功。

客户端配置:

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
        <httpRuntime maxRequestLength="1572864"/>
    </system.web>

    <system.serviceModel>
        <client>
            <endpoint name="basicHttpBinding"
                address="http://localhost:9502/HCDataService"
                binding="basicHttpBinding"
                bindingConfiguration="basicHttpBinding"                
                contract="HC.APP.Common.ServiceContract.IHCServiceContract"
                behaviorConfiguration="ServiceBehaviour">
            </endpoint>
        </client>

        <bindings>
            <basicHttpBinding>
                <binding name="basicHttpBinding" maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647">
                    <readerQuotas maxDepth="128" maxStringContentLength="2147483647" maxArrayLength="2147483646" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                </binding>
            </basicHttpBinding>
        </bindings>

        <behaviors>
            <endpointBehaviors>
                <behavior name="ServiceBehaviour">
                    <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
                </behavior>
            </endpointBehaviors>
        </behaviors>
    </system.serviceModel>
</configuration>

服务器配置:

<configuration>
    <system.serviceModel>
        <services>
            <service name="HC.APP.Server.Service.HCDataService" behaviorConfiguration="ServiceBehaviour">
                <host>
                    <baseAddresses>
                        <add baseAddress="http://localhost:9502/HCDataService"/>
                    </baseAddresses>
                </host>

                <endpoint name="basicHttpBinding"
                    address="http://localhost:9502/HCDataService"
                    binding="basicHttpBinding"
                    bindingConfiguration="basicHttpBinding"
                    contract="HC.APP.Common.ServiceContract.IHCServiceContract">
                </endpoint>
            </service>
        </services>

        <bindings>
            <basicHttpBinding>
                <binding name="basicHttpBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" closeTimeout="01:50:00" openTimeout="01:50:00" sendTimeout="01:50:00" receiveTimeout="01:50:00" >
                    <readerQuotas maxDepth="128" maxStringContentLength="8388608" maxArrayLength="2147483646" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                </binding>
            </basicHttpBinding>
        </bindings>

        <behaviors>
            <serviceBehaviors>
                <behavior name="ServiceBehaviour">
                    <serviceDebug includeExceptionDetailInFaults="true" />
                    <serviceMetadata httpGetEnabled="true" />
                    <dataContractSerializer ignoreExtensionDataObject="false" maxItemsInObjectGraph="2147483646" />
                </behavior>
            </serviceBehaviors>
        </behaviors>    
    </system.serviceModel>
</configuration>

那是因为您没有在服务器上指定要使用的绑定。让我们看一下您的服务器配置:

Under <bindings>您正在创建绑定配置<basicHttpBinding>,并且你正在命名它name="basicHttpBinding"。另外,您的端点名称是<endpoint name="basicHttpBinding" ...>它的绑定是binding="basicHttpBinding". However,它不是指你的绑定配置,但对于绑定type。所以,它实际上使用的是默认设置basicHttpBinding.

要解决此问题,首先以不同的方式命名您的端点和绑定配置。例如,<endpoint name="basicEndpoint" ... > and <binding name="myBasicBinding" ... >。然后,您需要使用此属性将绑定配置分配给端点:bindingConfiguration="myBasicBinding".

这是客户端配置:

<system.web>
    <httpRuntime maxRequestLength="32768"/>
</system.web>

<system.serviceModel>
    <client>
        <endpoint name="basicEndpoint"
            address="http://localhost:9502/HCDataService"
            binding="basicHttpBinding"
            bindingConfiguration="myBasicBinding"
            contract="HC.APP.Common.ServiceContract.IHCServiceContract"
            behaviorConfiguration="ServiceBehaviour">
        </endpoint>
    </client>

    <bindings>
        <basicHttpBinding>
            <binding name="myBasicBinding" maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647">
                <readerQuotas maxDepth="128" maxStringContentLength="2147483647" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
            </binding>
        </basicHttpBinding>
    </bindings>

    <behaviors>
        <endpointBehaviors>
            <behavior name="ServiceBehaviour">
                <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
            </behavior>
        </endpointBehaviors>
    </behaviors>    
</system.serviceModel>

这是服务器配置:

<system.serviceModel>
    <services>
        <service name="HC.APP.Server.Service.HCDataService" behaviorConfiguration="ServiceBehaviour">
            <host>
                <baseAddresses>
                    <add baseAddress="http://localhost:9502/HCDataService"/>
                </baseAddresses>
            </host>

            <endpoint name="basicEndpoint"
                address="http://localhost:9502/HCDataService"
                binding="basicHttpBinding"
                bindingConfiguration="myBasicBinding"
                contract="HC.APP.Common.ServiceContract.IHCServiceContract">
            </endpoint>
        </service>
    </services>

    <bindings>
        <basicHttpBinding>
            <binding name="myBasicBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" closeTimeout="01:50:00" openTimeout="01:50:00" sendTimeout="01:50:00" receiveTimeout="01:50:00" >
                <readerQuotas maxDepth="128" maxStringContentLength="8388608" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
            </binding>
        </basicHttpBinding>
    </bindings>

    <behaviors>
        <serviceBehaviors>
            <behavior name="ServiceBehaviour">
                <serviceDebug includeExceptionDetailInFaults="true" />
                <serviceMetadata httpGetEnabled="true" />
                <dataContractSerializer ignoreExtensionDataObject="false" maxItemsInObjectGraph="2147483646" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
</system.serviceModel>

别忘了update service reference在您的客户端上获取正确的配置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WCF 错误 - 已超出传入消息的最大消息大小配额 (65536) [重复] 的相关文章

随机推荐

  • 如何使用 pyinstaller 创建最小大小的可执行文件?

    我使用的是 Windows 10 安装了 anaconda 但我想使用 python 3 5 在一个新的 干净的最小环境中独立创建一个可执行文件 所以我做了一些测试 测试1 我在文件夹 testenv 中创建了一个 python 脚本 te
  • 在mysql中选择两个独立的表[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 results mysqli gt query SELECT product name price FROM herbs an WHERE
  • 双倍的 Pow 实现

    我正在开发一个用于运动控制的代码 但我遇到了 pow 函数的问题 我使用VS2010作为IDE 这是我的问题 我有 double p 100 0000 double d 1000 0000 t1 pow p 8 0000 d 1 00 4
  • YouTube.Builder 的正确使用方法

    我需要获取用户 YouTube 视频 这是我的代码 仅尝试获取用户 YouTube 频道 但它不起作用 选择帐户后 加载Youtube频道总是抛出错误 我读了这个answer https stackoverflow com a 214077
  • 如何使用类库中的控制器?

    我在类库中有控制器 但我无法弄清楚如何让主项目识别它们 主项目引用了我的类库 我需要在某处注册它们吗 我想同时使用控制器和 ApiController EDIT 路线配置 创建项目后未更改 public class RouteConfig
  • 在 swift 中将 UIImage 转换为 base64 字符串

    我正在尝试将 UIImage 转换为 base64 字符串 目的是将其上传到后端服务器 然而 我在这篇文章中找到的转换代码 应该是Apple自己的实现 生成了一个无效的字符串 UIImage 和 Base64 字符串之间的转换 https
  • Javafx程序可以通过GUI和命令行控制吗?

    我正在使用 Javafx GUI 但我也需要来自命令行的相同级别的功能 我想知道创建一个同时具有命令行和 Javafx 功能的主类的最佳方法是什么 这样您就可以在 GUI 上做一件事 然后在命令行上做下一件事 命令行还会更新 GUI 显示
  • CSV 日期格式

    我有一个 VB 应用程序 它提取数据并创建 3 个 CSV 文件 a csv b csv c csv 然后我使用另一个 Excel 电子表格 import xls 将上述 CSV 文件中的所有数据导入到此工作表中 import xls 文件
  • 使用 python 进行多元线性回归

    我想用 python 计算多元线性回归 我找到了这个简单线性回归的代码 import numpy as np from matplotlib pyplot import x np array 1 2 3 4 5 y np array 2 3
  • 无法启动服务器。服务器实例未配置

    在尝试为我的项目设置 tomcat 服务器时 出现以下错误 请参阅下面的完整堆栈跟踪 java lang ClassNotFoundException com springsource tcserver serviceability dep
  • libstdc++.so.6 与 cuda 相关的链接器问题

    今天我在链接我编译的 cuda 内容时遇到了问题 我有一个最新的 debian 测试 w 2 6 32 3 amd64 我整天都在写我的代码 不时编译 没有问题 但在进行了较小的代码更改后 我收到以下错误 gcc o pa CUDA o h
  • 在 ASP.Net Core 2 MVC 中禁用模型验证的正确方法

    使用扩展方法设置 MVC services AddMvc 然后在控制器中 这也可能适用于 GET 使用主体中提供的参数创建 POST 操作的方法 例如 HttpPost save public Entity Save FromBody En
  • 如何在 php 中实现位掩码?

    我不确定位掩码是否是正确的术语 让我解释 在 PHP 中 error reporting函数可以通过多种方式调用 Report simple running errors error reporting E ERROR E WARNING
  • Delphi:如何停止 TAction 快捷键自动重复?

    我正在使用 Delphi TActionList 带有用于某些操作的快捷键 我想防止某些操作被键盘自动重复多次触发 但我确实这样做not想要影响全局自动重复操作 这样做的最佳方法是什么 澄清 我仍然需要处理多个快速按键 这是only我想忽略
  • 如何使用扫描仪使该 switch 语句起作用?

    我正在尝试编写一个程序 将字母表中的任何字母 大写或小写 转换为拼音字母表 例如 如果我输入 A 或 a 我的程序会给我 将其更改为 Alpha 我对此和 switch 语句做了很多研究 但我总是陷入困境 我意识到我不能在扫描仪中使用 ch
  • 使用 chrome 进行 OfflineAudioContext FFT 分析

    我正在尝试构建一个波形生成器 它获取音频文件幅度值并在 JavaScript 中尽快 比实时更快 将它们显示到画布上 所以我使用 OfflineAudioContext webkitOfflineAudioContext 加载文件并开始分析
  • 如何更改 Linux 内核交换守护进程 (kswapd) 超时?

    我想通过使用闪存 SSD 等快速设备作为交换设备来减少 kswapd 超时以提高性能 您可以更改以下行为kswapd通过2种方式 通过Proc文件系统 From IBM 开发者工作坊 http www ibm com developerwo
  • Cuda Bayer/CFA 去马赛克示例

    我编写了一个 CUDA4 Bayer 去马赛克例程 但它比在 16 核 GTS250 上运行的单线程 CPU 代码慢 块大小是 16 16 图像暗淡是 16 的倍数 但更改此值并不会改善它 我做了什么明显愚蠢的事情吗 calling rou
  • 多个常数到一个矩阵并将它们转换为matlab中的块对角矩阵

    我有a1 a2 a3 它们是常数 我有一个矩阵A 我想做的是得到a1 A a2 A a3 A三个矩阵 然后我想将它们转移到对角块矩阵中 对于三个常数的情况 这很容易 我可以让b1 a1 A b2 a2 A b3 a3 A 然后在matlab
  • WCF 错误 - 已超出传入消息的最大消息大小配额 (65536) [重复]

    这个问题在这里已经有答案了 我的设置 托管在 IIS Express 中的 ASP NET 客户端 控制台应用程序中托管的 WCF 服务 在管理模式下运行 Visual Studio NET 2012 我试图从 WCF 服务返回 2 个 L