我有几个“blackbox”将数据发送到确定的IP和PORT,我无法指定任何其他内容(只有IP和PORT)......
我的服务器应该正在侦听PORT并捕获要发送给MSMQ的信息......
如何设置WCF服务器以侦听PORT?
谢谢!
答案 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进行通信。
这是一个很好的教程: