我编写了一个返回字符串[] [] [] [] []的WCF服务(由于遗留原因需要)。
然后我注意到一个重要的事实: 如果服务操作N个对象,则立即返回答案(在localhost中),但如果它试图操纵N + 1个对象,则发生超时(我将其设置为30秒)。
如果字符串[20] [20] [20] [5] [20]变成字符串[20] [20] [20] [6] [20],则会出现问题。
如果添加1个对象,为什么需要这么多? 该服务的代码没有用,所以我不会包含它。
谢谢,
阿尔贝托
答案 0 :(得分:2)
定义添加一个对象。给我们一些源代码。将项目添加到数组,意味着更改其大小和移动项目,在您的情况下可能非常昂贵 - 您有一个5维数组!那是为什么?
更新
我猜测原始数组中的字符串较少且空值较多,其中第二个字符串是你的瓶颈有更多的字符串。
答案 1 :(得分:2)
恕我直言,如果你使用字符串[] [] [] [] [],你的设计就会出现问题。
答案 2 :(得分:2)
检查datacontract seriializer是否设置为graph中的max对象。有时默认设置为低值会导致这种情况发生。我们遇到了类似的问题,当从WCF返回1000个东西以填充下拉列表时失败就是因为这个问题。
<behaviors>
<behavior name="CalculatorServiceBehavior">
<dataContractSerializer maxItemsInObjectGraph="6553600" />
</behavior>
</behaviors>
答案 3 :(得分:0)
问题是maxReceivedMessageSize,这个参数表示交换的消息量较高。
将其设置为6291456,该服务运作良好。
阿尔贝托