Как я могу вызвать операцию WCF без контейнера HTTP? - PullRequest
2 голосов
/ 25 июня 2009

У меня есть среда, в которой я не могу добавить другой контейнер HTTP (будь то ServiceHost, IIS и т. Д.), Но мне все еще нужно обрабатывать запросы SOAP (представленные в виде строк) с помощью веб-службы WCF. Я надеялся написать простой метод-оболочку (C #), такой как:

string processSoapMessage(string req);

В этом методе я вручную создал бы экземпляр System.ServiceModel.Channels.Message с устройством чтения XML, которое работает с входной строкой. Я надеялся избежать написания кода диспетчеризации вручную, создав ChannelDispatcher, который будет обрабатывать полученный экземпляр Message, но кажется, что ChannelDispatcher привязан к определенному ServiceHost, чего я не могу иметь в своей среде, если для этого требуется открытый порт. Есть ли какой-нибудь диспетчерский код, который я могу вызвать, чтобы выполнить это, не создавая контейнер для размещения?

Ответы [ 3 ]

1 голос
/ 20 июля 2009

Если предположить, что все происходит на одной и той же машине, тогда лучше использовать Named Pipe привязка.

0 голосов
/ 20 июля 2009

Что бы вы ни делали, не используйте тип System.String для хранения XML. Передайте XmlReader или XmlDocument или что-то еще. Всегда используйте XML API для манипулирования XML.

0 голосов
/ 26 июня 2009

То есть вы не можете создать простое консольное приложение, которое будет создавать и открывать ServiceHost для размещения вашего класса обслуживания?

Марк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...