2010-02-27 2 views
1

В настоящее время у меня есть приложение BizTalk 2006 (r1), которое получает XML из хранимой в SQL proc с использованием адаптера SQL. Он сопоставляет это с другой схемой перед отправкой третьей стороне. Порт отправки использует настраиваемый компонент конвейера, который преобразует XML в плоский файл - в формате, требуемом клиентом. Я не использую каких-либо оркестровок, это решение на основе чистого сообщения.BizTalk Отправить плоский файл для веб-службы

Все это отлично работает при отправке по FTP. Тем не менее, сторонняя сторона запросила, чтобы я нажимал сообщение на веб-службу, которую они трясли. Я еще не получил WSDL, но могу предположить, что метод, который я буду вызывать, просто получает строку как единственный параметр.

Не могли бы вы посоветовать лучший способ приблизиться к этому, пожалуйста? Я создал простую веб-заглушку. Затем я воспользовался рецептом 6-11 из отличной книги BizTalk 2006 Recipes, создав прокси-класс с использованием wsdl.exe, который затем ссылаюсь на вкладку «веб-сервис» порта отправки SOAP. Однако при обработке заказа я получаю следующее сообщение в журнале событий:

Не удалось загрузить тип «WSProxy» из сборки «Direct.IS.Payment.Components, Version = 3.1.145.0, Culture = neutral, PublicKeyToken = dc03da781bea1472 '. ". Тип должен быть получен из System.Web.Services.Protocols.SoapHttpClientProtocol. Тип должен иметь атрибут System.Web.Services.WebServiceBindingAttribute.".

Следующий шаг будет состоять в том, чтобы играть с прокси-сервером, чтобы он учитывал проблемы вывода и атрибута, упомянутые в четном сообщении журнала. Однако я не могу не думать, что должен быть более простой способ?

Благодаря

+0

Я нашел ответ на сайте [Saravana] (http://blogs.digitaldeposit.net/SARAVANA/post/2007/01/31/Calling-Web-Service-from-BizTalk-2006-in-a-Messaging -только-от сценария (ака-Content-ориентированного Routing) .aspx) –

ответ

0

компонент пользовательского трубопровода вы создали не производит сообщение, которое подходит для передачи SOAP. Не зная, что будет делать конечный клиент, я бы попытался сделать SOAP работу. В то же время, просто раскрутить страницу ASPX с помощью следующего кода:

private void Page_Load(object sender, EventArgs e) 
    { 
    StreamReader reader = new StreamReader(page.Request.InputStream); 
    String xmlData = reader.ReadToEnd(); 
    } 

Добавить код для записи XMLDATA в БД или в текстовый файл или что-то, чтобы увидеть, что это такое. Это очень грубо и не отправляет код ответа. Это должно заставить вас начать.

Смежные вопросы