首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >到达Wcf wsDualHttpBinding最大消息长度16384

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

Stack Overflow用户
提问于 2016-09-16 15:20:46
回答 2查看 197关注 0票数 0

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

我得到了一个异常,它建议将MaxArrayLength从16384增加到允许读取整个xml数据。

我尝试了以下配置:

代码语言:javascript
复制
 <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>

但是上面的配置似乎被忽略了。

我像这样实例化我的客户:

代码语言:javascript
复制
  var instanceContext = new InstanceContext( new CallbackHandler() );
  _clientService = new DataServiceClient( instanceContext );

我在某个地方读到,这一行代码覆盖了app.config中的配置;如果这不是问题所在,我如何增加配额呢?

任何帮助都很感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-19 16:30:51

您完全按照错误告诉您的那样做:)

要做到这一点,最好能直观地看到如何做到这一点,而不是复制和粘贴代码。

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

代码语言:javascript
复制
MaxArrayLength = 2147483647
MaxBytesPerRead = 4096
MaxDepth = 32
MaxNameTableCharCount = 2147483647
MaxStringContentLength = 2147483647

完成后,继续按“文件”,然后按“保存”

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

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

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

尽管设置高的值会使您容易受到ddos攻击等的影响,但是要注意,所以在测试后找出您需要的内容并更改它。

希望这会有所帮助:)

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

票数 1
EN

Stack Overflow用户

发布于 2016-09-20 14:24:35

您必须配置的不仅仅是maxReceivedMessageSize。正如Jonathan所说,有BytePerRead、TableCharCount、StringContentLenght等。您还必须配置readerQuotas:https://msdn.microsoft.com/en-us/library/ms731325(v=vs.110).aspx

请注意,您必须按照配置客户端的方式配置服务器,显然,您不能设置maxbytearraylengh不大于maxreceivedmessagesize。例如,如果服务器没有相同的MaxReceivedMessageSize或其他什么,它就不能像您预期的那样工作。

GL.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39535016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档