Иллюстрированный самоучитель по Architecture .NET

Добавление функций в Web-службу на основе ATL Server

Вы, может быть, помните пример SimpleWebService из главы 11 "Web службы", в котором выполнялось сложение двух чисел. Похожие возможности мы сейчас добавим в проект ATLServerWeb, только что созданный в этой главе. Итак, мы добавим метод, который принимает два целых параметра и возвращает их сумму. Чтобы добавить новую функцию, просто выполните указанную последовательность действий.

  1. Откройте только что созданное решение ATLServerWeb.sin
  2. В файл ATLServerWeb.h вставьте определение метода Add (Сложить) в интерфейс lATLServerWebService, как показано полужирным шрифтом [В уже существующем методе HelloWorld значение диспетчерского идентификатора установленным 1. В этом примере диспетчерские идентификаторы не используются но если вы очень хотите присвоить диспетчерский идентификатор новому методу Add (Сложить) то должны использовать следующее доступное число, каким должно быть число 2].
_interface lATLServerWebService // интерфейс
{
// TODO: Add additional Web Service methods here
// TODO: Добавьте здесь дополнительные методы Web-службы
HKESULT Add(// Сложить
[in] long x, [in] long y, [out, retval] long *psum);
};
  1. В том же файле ATLServerWeb.h вставьте, как показано полужирным шрифтом, реализацию метода Add (Сложить) в класс CATLServerWebService
class CATLServerWebService:
public IATLServerWebService
{
public:
// TODO. Add additional Service methods here
// TODO: Добавьте здесь дополнительные методы Web-службы
[ soap_method ]
HRESULT Add(long x, long y, long *psum)
{
*psum = x + y;
return S_OK;
}
}; // класс CATLServerWebService
  1. Создайте проект [Перейдя в своем браузере по адресу http //localhost/ATLServerWeb/ ATLServerWeb dll"> Handler=GenATLServerWebwSDL, вы увидите, что появилась новая информация – о методе Add (Сложить)].

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.