【问题标题】:Increasing maxBufferSize specifically for output专门为输出增加 maxBufferSize
【发布时间】:2021-12-10 14:48:59
【问题描述】:

现在我正在尝试创建一个 WCF 服务来解析一组 json 文件。一个函数实际上进行解析,另一个函数收集 json 字符串数组。该数组超过了最大缓冲区大小,但是当我将它插入后者(在创建数组的函数内)时,没有错误 - 只有当我尝试返回数组本身时。这就是我的意思:

Web2String.ServiceClient webServ = new Web2String.ServiceClient();
        string[] ip = new string[12];
        //MAKE SURE TO REPLACE THE KEY
        for (int i = 1; i < 13; i++)
        {
            if (mo == i || mo > 12 || mo < 1)
            {
                ip[i - 1] = webServ.GetWebContent("https://www.some.url");
            }
        }
        return ip;

没用,但是

Web2String.ServiceClient webServ = new Web2String.ServiceClient();
        string[] ip = new string[12];
        //MAKE SURE TO REPLACE THE KEY
        for (int i = 1; i < 13; i++)
        {
            if (mo == i || mo > 12 || mo < 1)
            {
                ip[i - 1] = webServ.GetWebContent("https://www.some.url");
            }
        }
        return otherFunction(ip);

会。

这是我尝试添加的绑定(什么也没做)。

<bindings>
  <basicHttpBinding>
      <binding name="BasicHttpBinding_IService" maxBufferPoolSize="6000000"
        maxBufferSize="5000000" maxReceivedMessageSize="5000000" >
      </binding>
  </basicHttpBinding>
</bindings>

我应该如何处理?

大部分错误信息如下:

编辑:为了清楚起见,我还应该提到 otherFunction 返回的数组远低于缓冲区大小。

【问题讨论】:

    标签: c# visual-studio wcf


    【解决方案1】:

    您似乎从服务端收到错误消息。根据您的错误消息和配置,您已经设置了 maxReceivedMessageSize 和其他设置的限制值。如果您尚未将该绑定分配给您的服务端点,在这种情况下,WCF 将使用 maxReceivedMessageSize 的默认值 65536。

    您需要通过端点元素的 bindingConfiguration 属性将定义的绑定 (wsBinding) 分配给端点,如下所示:

    <endpoint address="" 
          binding="wsHttpBinding"
          bindingCongifuration="wsBinding"
          contract="PMSService.ThomoloshaDeclaration">
    

    【讨论】:

      猜你喜欢
      • 2014-11-08
      • 2014-08-10
      • 1970-01-01
      • 2017-09-16
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      相关资源
      最近更新 更多