已达到Wcf wsDualHttpBinding最大消息长度16384

已达到Wcf wsDualHttpBinding最大消息长度16384,wcf,wsdualhttpbinding,Wcf,Wsdualhttpbinding,我无法在我的WCF服务上使用wsDualHttpBinding端点。 我在客户身上面临这个问题 我得到一个异常,建议将MaxArrayLength从16384递增,以允许读取整个xml数据 我尝试了以下配置: <system.serviceModel> <bindings> <wsDualHttpBinding> <binding name="MyBinding" maxReceivedMessageSize="21

我无法在我的WCF服务上使用wsDualHttpBinding端点。 我在客户身上面临这个问题

我得到一个异常,建议将MaxArrayLength从16384递增,以允许读取整个xml数据

我尝试了以下配置:

 <system.serviceModel>
    <bindings>
      <wsDualHttpBinding>
        <binding name="MyBinding" maxReceivedMessageSize="2147483647" />
      </wsDualHttpBinding>
    </bindings>

    <client>
      <endpoint name="WSDualHttpBinding_IDataService" binding="wsDualHttpBinding" bindingConfiguration="MyBinding"
        address="http://localhost:8733/DataProvider/" contract="DataStorageService.IDataService" >
        <identity>
          <dns value="localhost" />
        </identity>
      </endpoint>
    </client>
我在某处读到,这些代码行覆盖了app.config中的配置;如果这不是问题,我如何增加配额


感谢您的帮助。

您完全按照错误告诉您的方式操作:)

对于这一点,最好是直观地了解如何做,而不是复制和粘贴代码

在您的项目中,右键单击服务“app.config”并选择“编辑WCF配置”,然后单击“绑定”,您应该会看到自定义绑定。如果不是,请右键单击并创建一个新绑定。从这里您可以更改“ReaderQuotas属性”,我使用的是

MaxArrayLength = 2147483647
MaxBytesPerRead = 4096
MaxDepth = 32
MaxNameTableCharCount = 2147483647
MaxStringContentLength = 2147483647
完成后,继续按“文件”,然后按“保存”

现在去查看你的app.config代码,它应该已经更新了

运行服务,然后右键单击服务引用和“更新服务引用”

现在,如果查看客户端app.config文件,它应该与服务app.config属性相匹配。如果不是这样,请右键单击您的客户端app.config并再次“编辑WCF配置”,转到绑定,然后选择您的服务端点并将值更改为与服务相同的值

请注意,设置值过高会使您容易受到ddos攻击等。因此,请找出您需要的内容,并在测试后进行更改

希望这有帮助:)


确保您的服务以管理员身份运行

您完全按照错误指示执行:)

对于这一点,最好是直观地了解如何做,而不是复制和粘贴代码

在您的项目中,右键单击服务“app.config”并选择“编辑WCF配置”,然后单击“绑定”,您应该会看到自定义绑定。如果不是,请右键单击并创建一个新绑定。从这里您可以更改“ReaderQuotas属性”,我使用的是

MaxArrayLength = 2147483647
MaxBytesPerRead = 4096
MaxDepth = 32
MaxNameTableCharCount = 2147483647
MaxStringContentLength = 2147483647
完成后,继续按“文件”,然后按“保存”

现在去查看你的app.config代码,它应该已经更新了

运行服务,然后右键单击服务引用和“更新服务引用”

现在,如果查看客户端app.config文件,它应该与服务app.config属性相匹配。如果不是这样,请右键单击您的客户端app.config并再次“编辑WCF配置”,转到绑定,然后选择您的服务端点并将值更改为与服务相同的值

请注意,设置值过高会使您容易受到ddos攻击等。因此,请找出您需要的内容,并在测试后进行更改

希望这有帮助:)


确保您的服务以管理员身份运行

您必须配置的不仅仅是maxReceivedMessageSize。 正如乔纳森·科菲(Jonathan Coffey)所说,有BytePerhead、TableCharCount、StringContentLength等。 您还必须配置readerQuotas:

请注意,您必须以与配置客户端完全相同的方式配置服务器,显然,您不能将maxbytearraylengh设置为不大于maxreceivedmessagesize。 例如,如果服务器没有相同的MaxReceivedMessageSize或其他类型,它将无法按预期工作


GL.

您必须配置的不仅仅是maxReceivedMessageSize。 正如乔纳森·科菲(Jonathan Coffey)所说,有BytePerhead、TableCharCount、StringContentLength等。 您还必须配置readerQuotas:

请注意,您必须以与配置客户端完全相同的方式配置服务器,显然,您不能将maxbytearraylengh设置为不大于maxreceivedmessagesize。 例如,如果服务器没有相同的MaxReceivedMessageSize或其他类型,它将无法按预期工作


GL.

这似乎是在服务器端解决问题的过程,不是吗?我在客户端得到了错误。如果服务器端没有正确设置,那么它甚至不会发送到客户端。。我解释了客户端和服务器,它们是一个类似的过程。这似乎是在服务器端解决它的过程,不是吗?我在客户端得到了错误。如果服务器端没有正确设置,那么它甚至不会发送到客户端。。我解释了客户端和服务器,它们是一个类似的过程