2012-03-02 68 views
0

我想通过biztalk sendport(wcf-custom)通过 establishsecuritycontext = false访问wcf服务。我的应用程序生成80个orch实例,每次只有其中2个提供以下错误,并且所有其他工作正常。此外,如果我增加retrycount = 1,那么这两个orch实例会在第一次尝试连接到该服务时发出警告并成功完成在第二次尝试中。biztalk wcf集成问题

错误消息

错误描述:System.TimeoutException:客户端无法配置的超时时间(00:10:00)内完成安全协商。目前的谈判阶段是1(00:10:00)。 ; System.TimeoutException:请求通道在00:10:00之后等待回复时超时。增加传递给请求调用的超时值或增加绑定上的SendTimeout值。分配给此操作的时间可能是更长时间的一部分。 System.TimeoutException:对'webservice-address'的HTTP请求已超过00:10:00的分配超时。分配给此操作的时间可能是超时时间的一部分。 ; System.Net.WebException:操作已超时

回答

0

可能发生的情况是您的Biztalk服务器将过多的并发呼叫重载您的下游WCF服务。

WCF服务将仅接受取决于WCF服务(例如服务器的数量,在应用程序池等的线程的数目)的处理能力的并行连接的一个有限数。

快速和肮脏的,但不建议knobs在BizTalk WCF适配器上,以减少并发的消息在发送端口的数量。如果您的编排是通过批量传入消息触发的,那么您还可以查看接收适配器以及接收主机上的BizTalk throttling settings,以减少吸收的消息量。

单身 然而,该建议的方法是,使它们在消息框中的总和是修改编排成为一个单,或Seroter's 'N-ton'使得它通过关联的消息限制了它处理并发的消息的数量(典型地)。

你也可以看看改善WCF服务的性能 - 例如,看一下索引,如果它使用一个数据库,缓存,如果它获取数据等

+0

嘿感谢您的答复。将尝试这一点,让你知道.... – 2012-03-06 06:03:55

0

另一对夫妇的选择...

设置Ordered Delivery物理发送端口上。这将在逻辑发送端口和catch DeliveryFailureException影响性能,因为这些消息将得到有效序列化,但确实是快速检验和可能/可能不会变成是适合您的情况...

Delivery Notification Transmitted。然后,您可以等待预定义的/可配置的时间量并重试编排。这涉及更多一点,但给你最大的灵活性。

祝你好运!