与localhost Windows服务连接

时间:2012-02-03 20:53:14

标签: c# .net

我有一个用C#编写的服务器。我需要与它进行交互,以便我可以重新配置内容,清除缓存,断开用户,查看运行控制台等。我无法关闭服务器以执行任何这些操作。

两个可用选项,通过Tcp连接与服务器连接或使用Windows约定(某些WCF?)。

哪一个更可靠或是“最佳实践”:

  • Tcp连接和发出请求(当然只允许管理员/维护请求来自localhost)或
  • 使用WCF以某种方式访问​​程序集内的管理/维护方法?

提前感谢几乎总是有用的反馈。

编辑:任何人都可以提供WCF的替代方案吗?服务器本身就是65kb。它很小。我现在要做的就是向服务器发出一些管理/维护命令 。我不想成为服务器,它已经完成了。我只想与本地主机用户空间应用程序进行交互。

编辑2:问题解决:我只是使用一个非常小的Tcp客户端向我已经建立的协议发出请求。它只有几百行,并且不必使用笨重的过度使用的WCF。 WCF似乎......太过分了。那说我无论如何都需要学习它(现在就是这样),感谢您的反馈!

2 个答案:

答案 0 :(得分:2)

我肯定会建议使用WCF。您可以定义端点和合同,然后使用绑定来配置通信的完成方式(TCP,XML SOAP,命名管道,消息队列......)。

这项技术非常方便:如果您想要从TCP移动到HTTP SOAP,那么您只需更新配置文件就可以了; 无需更新的代码。此外,它完全可以互操作,因为您可以将WCF配置为使用HTTP(SOAP消息)并从任何语言/平台使用您的服务。您还可以在网上找到大量的教程和示例。

这是关于如何在Windows服务中托管WCF(示例中的TCP通信,但您可以通过修改配置使用其他内容)的a nice article

答案 1 :(得分:0)

您可以在Windows服务中托管Web服务。它当然是TCP,但客户端没有套接字级编程。

然后你可以在它上面有一个安静的界面。 WCF似乎总是太重了我不喜欢