ASP.NET 2.0 - Добавление веб-ссылки не генерирует асинхронный прокси-код - PullRequest
0 голосов
/ 28 января 2010

Я пытаюсь добавить веб-ссылку на приложение ASP.NET 2.0 в Visual Studio 2008.

Однако сгенерированные прокси-классы не включают методы BeginXXXX и EndXXXX.

Как я могу получить их для генерации? Нужно ли вручную использовать wsdl.exe?

(Кстати, в приложениях ASP.NET 3.5 в поле «Добавить ссылку на службу» есть опция, позволяющая указать, что должны создаваться асинхронные методы. Однако я ограничен реализацией ASP.NET 2.0).

Ответы [ 2 ]

1 голос
/ 06 февраля 2010

Если вы используете графический интерфейс пользователя Visual Studio 2008 Add Web Reference, он не будет генерировать методы BeginXXX и EndXXX. Возможно, вам придется напрямую вызвать wsdl.exe (из командной строки Visual Studio 2008):

wsdl.exe http://www.example.com/someservice.asmx?wsdl

и включите полученный файл .cs, содержащий прокси-классы и соответствующие методы BeginXXX и EndXXX в ваш проект.

Примечание: wsdl.exe может находиться по адресу C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin

0 голосов
/ 01 февраля 2010

Веб-сервисы от 2.0 генерируют различные методы ASync через обработчики событий. Методы Begin / End на самом деле не должны быть необходимыми для завершения прокси ASync: http://www.codeguru.com/csharp/csharp/cs_webservices/security/article.php/c9179__1/

Однако эти методы автоматически генерируются в графическом интерфейсе. Природа веб-службы должна обеспечивать интерфейс с этими методами через метаданные объекта SoapHttpClientProtocol.

Если вы напишите код создания службы в файле, вы сможете щелкнуть правой кнопкой мыши объявление типа переменной и выбрать «Перейти к определению». Это приведет вас к метаданным, сгенерированным при добавлении службы.

...