Поделиться через


Планирование перехода на платформу Windows Communication Foundation: упрощение будущей интеграции

Для тех, кто в настоящее время использует ASP.NET и планирует в будущем использовать WCF, этот раздел содержит рекомендации, как обеспечить как правильную работу веб-служб ASP.NET с приложениями WCF.

Основные рекомендации

Используйте для создания новых служб ASP.NET 2.0. Это обеспечит доступ к усовершенствованиям, появившимся в новой версии. В то же время это даст возможность использовать компоненты ASP.NET 2.0 вместе с компонентами WCF в одном и том же приложении.

Протоколы

Используйте новую функцию ASP.NET 2.0 для проверки соответствия спецификации WS-I Basic Profile 1.1:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(
     ConformsTo = WsiProfiles.BasicProfile1_1,
     EmitConformanceClaims=true)]
public interface IEcho

Веб-службы ASP.NET, соответствующие спецификации WS-I Basic Profile 1.1, будут способны взаимодействовать с клиентами WCF с помощью предопределенной привязки WCF — BasicHttpBinding.

Разработка служб

Избегайте использования атрибута SoapDocumentServiceAttribute для маршрутизации сообщений методам по полному имени элемента тела SOAP-сообщения, а не по заголовку HTTP SOAPAction. В WCF для маршрутизации сообщений используется заголовок HTTP SOAPAction.

Представление данных

XML-код, в который тип сериализуется сериализатором XmlSerializer, по умолчанию семантически идентичен XML-коду, в который тип сериализуется сериализатором DataContractSerializer, при условии, что пространство имен для XML задано явным образом. При задании типа данных для использования в веб-службах ASP.NET, если в будущем планируется переход на WCF, поступайте следующим образом.

  1. Задавайте тип с использованием классов .NET Framework, а не схемы XML.

  2. Добавляйте в класс только атрибуты SerializableAttribute и XmlRootAttribute, используя последний для явного задания пространства имен для типа. Не добавляйте дополнительные атрибуты из пространства имен System.Xml.Serialization для задания способа преобразования класса .NET Framework в XML.

Используя этот подход, вы впоследствии сможете превратить классы .NET в контракты данных, добавив атрибуты DataContractAttribute и DataMemberAttribute, без значительного изменения XML-кода, в который классы сериализуются для передачи. Типы, используемые в сообщениях веб-службами ASP.NET, смогут обрабатываться приложениями WCF как контракты данных, что, помимо прочих преимуществ, повышает производительность WCF.

Безопасность

Избегайте использования параметров проверки подлинности, предусмотренных в IIS: клиенты WCF их не поддерживают. Если службу необходимо защитить, используйте параметры, предусмотренные в WCF: они обеспечивают больше возможностей и основаны на стандартных протоколах.

См. также

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

Планирование перехода на платформу Windows Communication Foundation: упрощение будущей миграции