Можно ли использовать WCF (C #) в этой среде? - PullRequest
1 голос
/ 02 апреля 2009

У меня есть несколько «черных ящиков», которые отправляют данные на определенные IP и PORT, я больше ничего не могу указать (только IP и PORT) ...

Мой сервер должен прослушивать этот порт и перехватывать информацию для отправки в MSMQ ...

Как мне настроить сервер WCF на прослушивание этого ПОРТА?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 02 апреля 2009

Я бы написал нормальную службу Windows, которая прослушивает данные.

Используйте TCPListener или аналогичный класс

Затем подключите WCF как отдельную службу, которую ваша служба Windows вызывает для записи в очередь сообщений, это просто вопрос конфигурации.

[ServiceContract]
public interface IDaraWriterService
{
     [OperationContract]
     public void WriteDataToQueue(WriteDataToQueueMessage theDataEncapsulatedInAMessage)
     {
     }
}

Возможно, ваша служба Windows могла бы писать в очередь напрямую.

Смотрите здесь для получения дополнительной информации об очереди сообщений. http://msdn.microsoft.com/en-us/library/ms811053.aspx

2 голосов
/ 02 апреля 2009

Если вы можете контролировать передачу данных на IP-адрес / порт, тогда да, вы можете использовать WCF. К сожалению, без какого-либо контракта / привязки для указания средств, с помощью которых ваш «сервер» и ваш «клиент» обмениваются информацией, WCF мало чем вам поможет.

Так что, если вы не можете контролировать клиентский код, вам нужно «прокрутить» своего собственного слушателя. Как @Rob Стивенсон-Леггетт предложил: TcpListener

Edit:

Спасибо, Рэндольфо ... Итак, я буду развиваться Служба Windows со слушателем и добавьте сообщение в MSMQ. И в С другой стороны, мне нужен модуль для прочитайте очередь (MSMQ) и добавьте это к БД ... Этот модуль может быть в WCF? Что вы думаете?

Да. WCF предоставляет MsmqIntegrationBinding для связи на любом конце с MSMQ.

Вот хороший урок:

http://msdn.microsoft.com/en-us/library/ms789008.aspx

...