是否可以在该环境中使用WCF(C#)?

时间:2009-04-02 13:32:18

标签: c# wcf msmq

我有几个“blackbox”将数据发送到确定的IP和PORT,我无法指定任何其他内容(只有IP和PORT)......

我的服务器应该正在侦听PORT并捕获要发送给MSMQ的信息......

如何设置WCF服务器以侦听PORT?

谢谢!

2 个答案:

答案 0 :(得分:3)

我会编写一个监听数据的普通Windows服务。

使用TCPListener或类似的类

然后将WCF作为Windows服务调用的单独服务插入到消息队列中,这只是配置问题。

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

您的Windows服务可能直接写入队列btw。

有关消息队列的详细信息,请参阅此处。 http://msdn.microsoft.com/en-us/library/ms811053.aspx

答案 1 :(得分:2)

如果您可以控制将数据推送到IP地址/端口,那么是的,您可以使用WCF。不幸的是,如果没有某种合同/绑定来指定“服务器”和“客户”通信的方式,WCF对你没有多大帮助。

因此,如果您无法控制客户端代码,则需要“滚动自己的”侦听器。正如@Rob Stevenson-Leggett建议的那样:TcpListener

修改

  

谢谢Randolpho ......所以,我会发展   带有侦听器的Windows服务   并将消息添加到MSMQ。并在   otner手,我需要一个模块   读取队列(MSMQ)并将其添加到   DB ...那个模块可能在WCF中?   你的想法是什么?

是的。 WCF提供MsmqIntegrationBinding,用于在任一端与MSMQ进行通信。

这是一个很好的教程:

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