|
|
1
24
有一个WS-Discovery的实现,它允许您监听服务的启动/关闭公告。这也是一种非常方便的服务地址解析形式,因为它利用UDP多播消息查找服务,而不是在客户端配置一个设置地址。 WS-Discovery for WCF 还有一个由Microsoft员工执行的实现: WS-Discovery Sample Implementation 另一件事,你可能会考虑,特别是如果你的消息在很大程度上是单向的,是一个协议,它工作在本地断开,比如MSMQ。我不知道您的应用程序设计是什么样子的,但是MSMQ允许客户端发送消息,而不管服务的状态如何,并且服务将在其恢复时收到消息。这样,您的客户就不必在通信之前太多地试图确认服务已启动。。。它只会开火然后忘记。 希望这有帮助。 |
|
|
2
3
如果在具有用户界面的应用程序中执行同步调用时希望服务器超时,则应该在另一个线程中执行。我怀疑性能下降是由于异常开销造成的。 在CPU负载、gui可用性或挂钟时间方面,您的性能会受到影响吗? 您可以进行调查,看看是否可以在TCP上创建自定义绑定,但超时速度更快。 我假设您知道“IsOneWay=true”比请求更快->响应,因为您无论如何都不会期望得到响应,但是您不会得到确认或返回值。 |
|
|
3
1
如果您在本地网络中,则可能会广播一个信号,表示新服务器已启动。客户端需要监听广播信号并做出相应的响应。 |
|
|
4
1
这是我正在使用的,它就像一个符咒。顺便说一句,ServiceController类位于名称空间“System.ServiceProcess”中。
|
|
|
5
1
有一个很好的博客帖子 WCF: Availability of the WCF services |