1

我将首先解释我正在尝试做的事情,以及所涉及的环境/情况。

我正在使用已使用 .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 端点是要走的路,我一直找不到实现回调的示例。

在此先感谢您提供任何帮助或信息。如果我需要澄清以上任何内容,请告诉我。

4

1 回答 1

0

检查此Microsoft 示例以了解动态路由(可在此SkyDrive 链接中找到,位于 WCF4WhatsNew.rar\WCF4WhatsNew\03_DynamicRoutingRules\ 下)。

该示例每 5 秒重定向到一个备用服务。将示例更改为所需的路由算法。


PS:这个问题有点tl;博士。我建议您更具体一些,并使用文本格式来强调重要部分。否则,你会收到更多的风滚草

于 2011-01-23T13:54:26.557 回答