Как отменить длительные запросы WCF от silverlight 3 - PullRequest
2 голосов
/ 11 марта 2010

У меня есть приложение silverlight 3, которое делает несколько длительных запросов к службе WCF. Пока эти вызовы выполняются, любые другие более поздние вызовы WCF помещаются в очередь в Silverlight 3, потому что он будет выполнять только два запроса одновременно, в результате чего приложение будет отстой: (* ​​1001 *

Как я могу отменить длительные запросы на блокировку?

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Единственный способ, о котором я знаю, это, к сожалению, вызвать Abort() на вашем прокси, но будьте осторожны, вам нужно создать его новый экземпляр впоследствии (и повторно подписаться на события Completed), потому что он закрывает основное соединение , Также обратите внимание, что это убьет все текущие асинхронные запросы, поэтому вам нужно вызвать его перед вызовом дополнительных.

0 голосов
/ 30 марта 2010

Непосредственно не отвечайте на ваш вопрос, но вы можете сделать более двух одновременных исходящих HTTP-запросов.

Если ваше приложение отправляет много исходящих http-запросов, вы будете ограничены .Net. По умолчанию .Net поддерживает только два одновременных исходящих http-запроса. Чтобы обойти это, вам нужно добавить раздел system.net в app.config.

Вот пример кода.

<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>
...