Асинхронные методы XML-веб-служб

Этот раздел посвящен технологии прежних версий. Веб-службы XML и клиенты веб-служб XML должны создаваться с использованием Windows Communication Foundation.

Для повышения производительности методов веб-службы, которые вызывают долго выполняющиеся методы, блокирующие свои потоки, следует рассмотреть возможность представления их в виде асинхронных методов веб-службы. Реализация асинхронного метода веб-службы позволяет этому потоку выполнять другой код, когда он возвращается в пул потоков. Это позволяет выполнять еще один поток из ограниченного количества потоков в пуле потоков, повышая общую производительность и масштабируемость системы.

Пошаговые инструкции по преобразованию метода веб-службы в пару методов, предназначенных для асинхронного доступа, приведены в разделе Практическое руководство. Создание асинхронных методов веб-службы. Дополнительный пример кода см. в разделе Как увязывать асинхронные вызовы с помощью метода веб-службы.

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

Независимо от того, имеет ли метод веб-службы асинхронную реализацию, клиент может взаимодействовать с ним асинхронно. Асинхронная передача данных обеспечивается клиентам .NET с помощью прокси-класса, создаваемого программным средством языка описания веб-служб (WSDL.EXE), даже если метод веб-службы имеет синхронную реализацию. Этот прокси-класс содержит методы Begin и End для асинхронного обмена данными с каждым методом веб-службы. Поэтому решение об асинхронной или синхронной реализации метода веб-службы должно основываться на производительности.

83bkx91t.note(ru-ru,VS.100).gifПримечание
Реализация асинхронного метода веб-службы не влияет на соединение HTTP между клиентом и сервером, на котором размещена веб-служба. Соединение HTTP не закрывается и не помещается в пул.

См. также

Задачи

Практическое руководство. Создание асинхронных методов веб-службы
Как увязывать асинхронные вызовы с помощью метода веб-службы

Основные понятия

Асинхронное взаимодействие с XML-веб-службами

Другие ресурсы

XML-веб-службы с использованием ASP.NET