我需要在工作中创建一个WCF服务,该服务将处理来自同一台机器上的不同客户端的请求,并且可选地来自不同机器的客户端,但是在公司的网络上(来自程序员计算机 - 用于调试目的)。 我需要一些关于如何创建服务的建议,因为在WCF方面我是一个初学者。
该服务将从客户端获取请求,以在位于主机上的h / w设备上执行不同的操作。 该服务需要包含多个模块以支持各种h / w设备。 编写客户端代码的程序员将使用这些Modules对象来执行操作。 每个模块都需要支持针对客户的事件和异常抛出。
我想知道几件事:
我知道这很多,但我阅读了基础知识,我无法确定实现这些要求的正确方法。
提前致谢。
答案 0 :(得分:4)
1 - 是的。正如您所说,您可以共享API dll,此外,您还可以使用 Mex 端点提供有关服务的文档:https://social.msdn.microsoft.com/Forums/vstudio/en-US/3def9d4f-ae3e-468b-90e6-3a069bac6376/when-to-use-wcf-mex-endpoint
2 - 是的。 WCF会在出现问题时抛出FaultException
并发送给客户端,并且不会在自己的应用程序中捕获。
3 - 客户端在自己的线程或线程池中运行(我不记得确切,但这无论如何都不重要)。您仍然可以为客户端使用多线程功能,没有任何问题。 WCF本身就是线程安全的,客户端明智的。它基本上抽象了所有内容,使其看起来像为每个用户运行一个完整的专用应用程序。
4 - 此应用程序是网络还是桌面?如果您使用网络,我建议使用nethttpbinding
来确保可靠性。如果您使用桌面,则可以使用nettcpbinding
获得更好的效果结果。