我正在编写一个服务器,它将持续监听客户端连接。它不需要任何用户交互。所以,我想把它作为一项服务。我成功安装了它,但除了显示错误1053之外它没有成功运行。我发现启动/停止方法应该在30秒内返回。就我而言,这意味着我的服务器应该停止其操作并在30秒内返回。我不能在服务器上暗示这种约束,因为客户端可能随时连接。任何人都可以告诉我一种将此服务器安装为服务的方法吗?
注1:我使用的是Windows平台,c#语言和VS 2010。
注2:其他想法也受到欢迎。
答案 0 :(得分:1)
没有看到你的代码,继续你在这里说的话,我会说你应该实现线程。
现在你的应用程序开始运行,只是阻塞直到客户端连接。这不是最佳实践,或者对于Windows服务来说,甚至不可能因为30秒。限制。
你应该做的是启动服务并初始化所有内容(因此它将在30秒内返回。)然后启动一个不同的监听线程。也许一个好主意是在客户端连接时启动另一个线程。在这种情况下,您可以处理多个客户端而不只是一个。
当然我不知道您正在使用什么传输层,但请查看基于TCP的示例:http://www.switchonthecode.com/tutorials/csharp-tutorial-simple-threaded-tcp-server