Как использовать сервис WCF от BizTalk 2010 - PullRequest
1 голос
/ 07 сентября 2011

У меня есть веб-сервис, который мне нужно использовать из оркестровки BizTalk.Я определил схемы сообщений, которые я использую в BizTalk, они выглядят как

    <?xml version="1.0" encoding="utf-16"?>
    <xs:schema 
        xmlns:mstns="http://tempuri.org/XMLSchema.xsd" 
        xmlns="http://www.myapp.com/schemas/IntegrationApplication-instance" 
        xmlns:b="http://schemas.microsoft.com/BizTalk/2003" 
        xmlns:ns0="https://DTIB.PropertySchema" 
        elementFormDefault="qualified" 
        targetNamespace="http://www.myapp.com/schemas/IntegrationApplication-instance" 
        xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:include schemaLocation=".\CommonTypes.xsd" />
      <xs:element name="ProviderRequest">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Header" type="HeaderType" />
            <xs:element name="Parameters" type="ParametersType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>

В службе WCF у меня есть методы, определенные как

public ProviderResponse Provide(ProviderRequest providerRequest) {...}

, где ProviderRequest определяется как

        [DataContract(Namespace = "http://www.myapp.com/schemas/IntegrationApplication-instance")]
        public class ProviderRequest
        {
            [DataMember]
            public Header Header { get; set; }

            [DataMember]
            public Parameter[] Parameters { get; set; }
        }

Когда я создаю порт отправки и пытаюсь отправить сообщение ProviderRequest, происходит сбой с разными ошибками.

Какой лучший способ использовать службу WCF, которая использует те же схемы, что и в проекте BizTalk

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

Лучше всего запустить экземпляр службы, а затем «Добавить сгенерированные элементы» -> «Использовать службу WCF» из Visual Studio.

Это сгенерирует ваши XSD-сообщения и типы портов для служебного сообщения и будет упрощенным способом выполнения того, что вы пытаетесь сделать.

0 голосов
/ 10 ноября 2011

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

Вот несколько предложений.

Наиболее распространенный случай: Вам необходимо использовать службу и использовать эти сообщения. - Используйте предложение Хью "Добавить сгенерированный элемент ..."

Менее распространенный случай: Вы уже создали схему, которую также использует служба (тоже самое) - Используйте предложение Хью "Добавить сгенерированный элемент ..." - Удалите дублирующуюся схему, либо вашу собственную, либо из созданного

Не очень распространенный случай: Вы хотите использовать две службы, использующие одну и ту же схему - Используйте предложение Хью "Добавить сгенерированный элемент ..." - Удалить дублирующуюся схему из одного из сгенерированных

Никогда не случалось со мной: Вы уже создали схему, которую также использует служба (НЕ то же самое, но то же корневое имя и пространство имен) - Ничего не поделаешь, это не сработает (из коробки)

...