我将首先解释我正在尝试做什么,以及所涉及的环境/环境。
我正在使用已经使用.NET 4实现的预先存在的WCF服务(作为Windows服务托管)。该服务利用net.tcp和可靠会话,以及对客户端应用程序的回调。 WCF服务和客户端应用程序在同一网络域(我们称之为Domain_A)上运行,并且正常工作。
现有:
(Client [Domain_A]:) ---[request]--> (WCF Svc [Domain_A])
(Client [Domain_A]:)<--[callback]--- (WCF Svc [Domain_A])
我试图实现的新功能是路由服务(通过WCF 4)。将在Domain_A上运行的WCF服务的相同副本也将在Domain_B上运行。 net.tcp和mex端点所需的端口已在每个域上的两台计算机之间打开,并且我能够从相反的域成功访问每个服务的元数据。
我不确定的是,就路由服务请求而言,我应采取什么样的架构(在架构上)。客户端发出的某些请求只能由Domain_A上的服务进行回复,其他请求只能由Domain_B上的服务进行回复。目标服务是(或可以)由每个服务调用传递的参数(来自客户端)确定。此外,客户端应用程序只能从Domain_A运行。
所需功能:
(Client [Domain_A]:) ---[request]-->(Routing Svc [Domain_A]) ---[request]-->( (WCF Svc [Domain_A]) OR (WCF Svc [Domain_B]) )
(Client [Domain_A]:) <--[callback]--- (Routing Svc [Domain_A])<--[callback]--- ( (WCF Svc [Domain_A]) OR (WCF Svc [Domain_B]) )
我的第一个问题:就路由过程而言,实现上述“所需功能”的最佳途径是什么(过滤策略,端点/合同类型等)?我是路由服务的新手,并且无法找到符合我要求的清晰/简明的答案或示例。
第二个问题:除了过滤问题,有人能指出一个使用可靠会话和回调的WCF4路由服务的例子吗?除了快速提及IDuplexSessionRouter之外,我似乎找不到更多。如果IDuplexSessionRouter端点是要走的路,我一直无法找到实现回调的示例。
提前感谢您提供任何帮助或信息。如果我需要澄清上述内容,请告诉我。
答案 0 :(得分:0)
选中 Microsoft示例进行动态路由(可在此SkyDrive link中找到,位于WCF4WhatsNew.rar \ WCF4WhatsNew \ 03_DynamicRoutingRules \)。
该示例每5秒重定向到一个备用服务。将样本更改为所需的路由算法。
P.S :问题有点tl;dr。我建议你更具体一点,并使用text formatting强调重要部分。否则,您会收到更多 tumbleweeds。