Почему моя справочная служба генерирует только асинхронные методы? - PullRequest
8 голосов
/ 30 января 2009

У меня есть сервисная ссылка (не веб-ссылка) в VS2008 на веб-сервис, который я не написал. Справочник работает, но мне доступны только асинхронные версии каждого метода.

В диалоговом окне «Настройка справочника услуг» флажок «Создать асинхронные операции» отмечен серым цветом. Прежде всего, я подумал, что установка этого флажка генерирует асинхронные методы в дополнение, а не к блокирующим методам. Во-вторых, я никогда не видел его серым.

У меня есть опыт написания обеих сторон веб-сервисов эпохи WCF и ASMX, и я никогда не видел этого раньше. Что может быть причиной этого?

Спасибо.

Ответы [ 3 ]

13 голосов
/ 30 января 2009

Я бы хотел поставить десять голосов "за", потому что вы делаете это в Silverlight. К сожалению, у меня нет установленных инструментов, поэтому я не могу проверить эту теорию, но я знаю, что вызовы служб из Silverlight могут быть только асинхронными. Возможно, вы используете шаблон проекта Silverlight и создаете там ссылку на сервис? Visual Studio может быть достаточно умен, чтобы не создавать методы блокировки в такой ситуации.

Для справки:

http://msdn.microsoft.com/en-us/library/cc197937(VS.95).aspx

3 голосов
/ 30 января 2009

Плагин Silverlight работает в потоке пользовательского интерфейса браузера. Если вы выполняете синхронные сетевые вызовы, вы блокируете весь поток пользовательского интерфейса браузера. В Chrome это приведет к появлению вкладки без ответа, в других браузерах, таких как IE, весь браузер будет заблокирован.

Таким образом, поддерживая только асинхронную сеть, вы вынуждены писать свое приложение в асинхронном режиме.

2 голосов
/ 30 января 2009

Silverlight генерирует только асинхронные вызовы службы. Однако проверьте эту страницу CodeProject out.

Когда я начал работать с Silverlight, это было что-то, что меня сначала шокировало. Затем я понял, что должен изменить свой код для работы с асинхронной моделью. Вы не хотите блокировать поток пользовательского интерфейса, пока ожидаете возврата вызова службы.

...