3

我正在尝试将大约 50 个元素的数组发送到 WCF 服务方法,但我总是收到(404) Bad Request错误消息。

我认为这与消息大小或类似的东西有关,因为如果我发送一个空数组,它就可以工作。

我做了一些研究并在 WCF 的 web.config 中添加了一些东西,但我仍然无法让它工作。

任何人都可以提供一些关于如何增加我可以发送的消息大小的额外信息吗?


[更新]解决方案:

解决方案

4

3 回答 3

2

愚蠢,愚蠢的我:(

问题是我在 web.config 中创建了绑定配置,如下所示:

<bindings>
    <wsHttpBinding>
        <binding name="netTcpBindingConfig" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" transactionFlow="false" hostNameComparisonMode="StrongWildcard"  maxBufferPoolSize="524288" maxReceivedMessageSize="6000000">
            <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="6000000" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
        </binding>
    </wsHttpBinding>
</bindings>

但是后来我没有将配置应用到端点!所以,我不得不将它添加到端点标签:

bindingConfiguration="netTcpBindingConfig"

现在它就像一个魅力。

于 2009-04-11T13:30:19.927 回答
0

这很明显,但是您是否尝试将MaxReceivedMessageSize设置为 65536 并查看它是否仍然失败?

于 2009-04-11T13:06:38.190 回答
0

您的服务主机应配置为接收大量数据,如果没有,则将其丢弃在服务级别。

  • 添加对 System.Runtime.Serialization 的引用。
  • 创建绑定时设置消息大小:

    
    return new NetTcpBinding(SecurityMode.None, true)  
    {  
        MaxReceivedMessageSize = 99999999,  
        ReaderQuotas = { MaxArrayLength = 99999999 }  
    };
    
    
于 2009-04-11T13:06:55.537 回答