//Хотя этого и не видно, на сервер будет передан клиентский cookie-файл!
//Хотя этого и не видно, с сервера будет передан клиентский cookie-файл!
someWebService.CreateNewOrder(userInfo, productInfo);
//
//...Выполнение другого многострочного кода...
//
//2. Подтвердить заказ серверу
//Хотя этого и не видно, на сервер передается клиентский
//cookie-файл, содержащий "orderID". Лихо!
someWebService.ConfirmPayment(paymentInfo);
//
//...Выполнение другого многострочного кода...
//
//3. Подтвердить адрес доставки
//Хотя этого и не видно, на сервер передается клиентский
//cookie-файл, содержащий "orderID". Лихо!
someWebService.ConfirmShipping(shippingAddress);
//
//...Выполнение другого многострочного кода...
//
//4. Завершить оформление заказа
//Хотя этого и не видно, на сервер передается клиентский
//cookie-файл, содержащий "orderID". Лихо!
someWebService.FinalizeOrder;
Приведенный выше код довольно прост, однако, о чем говорится в комментариях, имеется и второй канал связи, скрытый от программиста. Скрытые параметры передаются в обоих направлениях между клиентом и сервером посредством cookie-файлов. Этот факт является убедительным аргументом в пользу того, чтобы не использовать cookie-файлы на стороне клиента при проектировании Web-служб. Гораздо лучше передавать все параметры, требуемые для запроса Web-службы, явным образом, чем использовать для хранения этой информации непрозрачный второй канал.
Многие платформы мобильных устройств либо вообще не поддерживают клиентские cookie-файлы, либо эта поддержка существенно отличается от той, которая предлагается программными каркасами на настольных компьютерах. В частности, в .NET Compact Framework, выполняющейся на устройствах Smartphone, Pocket PC и Windows СЕ, автоматическая передача cookie-файлов вместе с запросами Web-служб не поддерживается. Если вы хотите, чтобы некоторые cookie-файлы были переданы сервером на устройство и возвращены на сервер вместе с последующим запросом, то вы должны написать код для чтения содержимого cookie-файлов из заголовков одного из ответов HTTPWebResponse и записи содержимого cookie-файлов в заголовки последующего запроса HTTPWebRequest. Для этого в случае вызова Web-служб вы должны просмотреть и изменить прокси-код Web службы на стороне клиента, автоматически сгенерированный для вас Visual Studio .NET. Эта задача ни в коей мере не является неразрешимой, но потребует от вас выполнения дополнительной работы, к чему вы должны быть готовы. В этом и состоит важное отличие в поддержке Web-служб программными каркасами на устройствах и настольных компьютерах.