WCF超时返回五维字符串数组

时间:2009-07-10 07:25:40

标签: wcf

我编写了一个返回字符串[] [] [] [] []的WCF服务(由于遗留原因需要)。

然后我注意到一个重要的事实: 如果服务操作N个对象,则立即返回答案(在localhost中),但如果它试图操纵N + 1个对象,则发生超时(我将其设置为30秒)。

如果字符串[20] [20] [20] [5] [20]变成字符串[20] [20] [20] [6] [20],则会出现问题。

如果添加1个对象,为什么需要这么多? 该服务的代码没有用,所以我不会包含它。

谢谢,

阿尔贝托

4 个答案:

答案 0 :(得分:2)

定义添加一个对象。给我们一些源代码。将项目添加到数组,意味着更改其大小和移动项目,在您的情况下可能非常昂贵 - 您有一个5维数组!那是为什么?

更新

我猜测原始数组中的字符串较少且空值较多,其中第二个字符串是你的瓶颈有更多的字符串。

答案 1 :(得分:2)

恕我直言,如果你使用字符串[] [] [] [] [],你的设计就会出现问题。

答案 2 :(得分:2)

检查datacontract seriializer是否设置为graph中的max对象。有时默认设置为低值会导致这种情况发生。我们遇到了类似的问题,当从WCF返回1000个东西以填充下拉列表时失败就是因为这个问题。

<behaviors>
    <behavior name="CalculatorServiceBehavior">
        <dataContractSerializer maxItemsInObjectGraph="6553600" />
    </behavior>
</behaviors>

view link

答案 3 :(得分:0)

问题是maxReceivedMessageSize,这个参数表示交换的消息量较高。

将其设置为6291456,该服务运作良好。

阿尔贝托