1

我有几个“黑盒”将数据发送到确定的 IP 和端口,我不能指定其他任何东西(只是 IP 和端口)......

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

如何设置 WCF 服务器来监听该端口?

谢谢!

4

2 回答 2

3

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

使用TCPListener或类似的类

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

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

顺便说一句,您的 Windows 服务可能会直接写入队列。

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

于 2009-04-02T13:34:59.070 回答
2

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

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

编辑:

谢谢 Randolpho... 所以,我将开发一个带有侦听器的 Windows 服务并将消息添加到 MSMQ。在其他人手中,我需要一个模块来读取队列(MSMQ)并将其添加到数据库中......那个模块可能在 WCF 中?你认为呢?

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

这是一个很好的教程:

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

于 2009-04-02T14:38:35.847 回答