Я пытаюсь создать оркестровку BizTalk, которая имеет дело с форматом XML, а затем представить эту оркестровку как службу WCF, которая получает и возвращает строку, используя определенные конвейеры отправки и получения для преобразования строки в формат XML, используемый оркестровка.
Я сделал вот что:
- Создайте оркестровку на основе формата XML (в моем случае - XML-схемы EDI для здравоохранения)
- Создайте двусторонний порт в оркестровке, который еще не привязан к физическому порту
- Разверните оркестровку
- Запустите мастер службы BizTalk WCF, чтобы предоставить оркестровку как службу.
На этом этапе служба публикуется в соответствии с XML-схемой BizTalk EDI. Поскольку это сложно, и я не хочу выполнять работу по преобразованию строки EDI в эту схему, когда BizTalk имеет встроенный конвейер для этого.
Для этого я сделал следующие шаги:
- Создайте фиктивную оркестровку с двусторонним портом, который принимает строку
- Снова запустите мастер службы, чтобы опубликовать эту оркестровку как службу.
- Скопируйте строковую схему из опубликованной строковой службы в папку App Data опубликованной реальной службы.
- Измените XML-файл службы в реальной службе, чтобы использовать новую схему строк вместо сложной схемы EDI.
- Откройте место приема для двустороннего порта WCF и измените конвейер приема на «EDI Receive», а конвейер отправки на «EDI Send».
Хотя это позволяет службе работать и публиковать WSDL, это не кажется правильным. Когда я добавляю ссылку на эту службу, она просто принимает необработанный объект сообщения WCF (он не вводится как что-то конкретное). Когда я пытаюсь создать сообщение вручную и отправить его, я получаю ответ об ошибке, в котором говорится, что операция не реализована (как вы могли видеть из NotImplementedException
).
Я делаю это неправильно? Это не кажется таким сложным, но я в тупике.