我有一个silverlight 3应用程序,可以向WCF服务发出几个长时间运行的请求。当这些调用正在进行时,任何其他后来的WCF调用都会被silverlight 3排队,因为它只会同时执行两个请求,从而使应用程序陷入困境:(
如何取消长时间运行的阻止请求?
答案 0 :(得分:1)
不幸的是,我知道的唯一方法就是在您的代理上调用Abort()
,但要小心,您需要在之后创建它的新实例(并重新订阅已完成的事件),因为它关闭了基础连接。另请注意,这会终止所有当前的异步请求,因此您需要在调用其他异步请求之前调用它。
答案 1 :(得分:-1)
不直接回答您的问题,但您可以同时发出两个以上的传出http请求。
如果您的应用程序发出大量传出的http请求,您将被.Net限制。默认情况下,.Net仅支持两个同时传出的http请求。要解决这个问题,您需要在app.config中添加system.net部分。
以下是一个示例代码段。
<system.net>
<defaultProxy>
<proxy usesystemdefault="false" bypassonlocal="true" />
<bypasslist>
<add address = "[^.]+\.[^.]+\.ntwk\.msn\.net$" />
<add address = "[^.]+\.phx\.gbl$" />
</bypasslist>
</defaultProxy>
<connectionManagement>
<add address = "*" maxconnection = "12" />
</connectionManagement>
</system.net>