因此,我将通过自托管(在WindowsService中)WebServiceHost提供一些功能(不确定如何使用ServiceHost处理HTTP GET / POST),其中一个可能被称为大量时间。此功能还将依赖于appdomain中的连接(由WindowsService托管,因此它可以在多个请求中保持活动状态。)
我有以下疑虑,非常感谢任何输入/想法/意见:
这就是目前的情况;)我一直在WCF上阅读很多,并希望我很久以前就已经进入了它,但绝对还在学习。
答案 0 :(得分:5)
并发访问 - 您可以使用ServiceBehaviorAttribute设置此功能。有许多选项 - 您可以让WCF为每个传入请求创建服务类的新实例,或者您可以让单个实例处理所有请求。此外,您可以告诉WCF是否连续或同时传递请求。
WebServiceHost - > WindowsService通信。我想到了两种方法:WCF支持一种名为“众所周知的实例”的模式,您可以将服务实例传递给ServiceHost构造函数,而不是传递Type并让WCF为您实例化它。使用此模式,您可以使用对托管代码的引用来预配置您的服务实例(或者您也可以使用事件)。如果你想保持实例化的灵活性,另一种选择是在你的托管代码中有一个静态方法,WCF服务可以回调它。
多个WebServiceHosts或Contracts - 拥有多个ServiceHost实例确实没有优势。另见SO线程:What are the benefits for several servicehosts? Does one ServiceHost support several simultaneous connections on one endpoint?。
WSDL - 虽然您可以通过启用元数据发布(http://msdn.microsoft.com/en-us/library/ms788760.aspx)来启用WSDL,但WSDL支持适用于基于SOAP的服务,而不是纯HTTP GET / POST。为您的服务自动生成的WSDL可能不会非常有用。