Веб-сервис BizTalk возвращает значение, а не void + ref

Есть ли способ получить веб-сервис, сгенерированный мастером BizTalk Web Services, для оркестровки, возвращающей значение, вместо того, чтобы возвращать пустое значение и использовать return по ref?

Я пытаюсь эмулировать существующий веб-сервис, который очень прост... веб-метод принимает строку и возвращает строку... public string MyTestMethod(string MyVal)

Прокси для веб-службы из оркестровки работает, но мастер BizTalk создает... public void MyTestMethod (ref string MyVal)

Я пробовал расширенный вариант, Force Request Response, но, похоже, ничего не делает

3 ответа

Решение

Единственным ответом, который я нашел, было ручное редактирование файла ASMX.CS, который генерирует мастер публикации веб-служб BizTalk...

  • Измените ElementName для методов в параметре... ([XmlElement(Namespace = null, ElementName = "XML")] string part)

  • Полностью удалить... [return: System.Xml.Serialization.XmlElementAttribute ...] атрибут

  • Плюс настроить WebService(Name="", Namespace="",...) ценности, чтобы удовлетворить

Это, конечно, означает, что вы не можете просто сгенерировать заново с помощью мастера:-(

Вы пытаетесь опубликовать Orchestration как веб-сервис или Schema как сервис?

Замечания при использовании мастера веб-службы: http://technet.microsoft.com/en-us/library/aa559660(BTS.20).aspx... для 2006 R2

Я знаю, что это довольно старый пост, но на случай, если к нему придет еще кто-нибудь: мне удалось сделать это, как предложено Томом Редферном выше. Он отлично работает, если ваш входящий порт оркестровки является двусторонним.

В моем случае мне пришлось представить оркестровку в качестве службы WCF, где моя оркестровка получает домен (например, "gmail.com") в качестве входного параметра, выполняет некоторую обработку и в конце выполняет хранимую процедуру, которая выбирает список принадлежащих электронных писем. в этот домен. Таким образом, у меня был "Домен" в качестве ввода и "ListOfUsers" в качестве вывода. Наличие моего входящего порта оркестрации как "ДВА" позволило мне получить сообщение типа "Домен" и выходное сообщение типа "ListOfUsers".

После этого я мог использовать "BizTalk WCF Service Publishing Wizard", и он прекрасно его генерирует. Просто пришлось настроить пространства имен, имена портов, пул приложений и т. Д. И все хорошо! Пробовал с помощью SoapUI и работает отлично!

Другие вопросы по тегам