拦截要发给具有本地WCF服务的另一台计算机的呼叫

问题描述

| 我对WCF还是很陌生,所以这可能是一个愚蠢的问题,但是我想知道是否有一种方法可以配置WCF服务,以便它“拦截”针对另一台计算机的调用。本质上,我希望在MachineA上执行的调用(通过浏览器)如:\“ http:// MachineB / MyService \”实际上在MachineA上处理(前提是我的服务在MachineA上运行)。 这个想法是,如果用户尚未安装该服务,则呼叫“掉线”到MachineB,他们将可以在其中安装该服务。但是,一旦安装完成,MachineA就会捕获所有这些后续调用并进行处理。 我完全可以看出这是不可行的(不用说,就是入侵机器的主机文件),但是我希望也许有一些我不知道的WCF魔术可以启用这种功能场景?     

解决方法

这听起来像本文所述的WCF RoutingService的用例。它是WCF的一部分,因此,除非要添加自定义行为,否则仅需要创建和部署配置文件。我们添加了自定义日志记录行为以与现有的日志记录基础结构接口,以对潜在的通信问题进行故障排除,但是如果您依靠WCF跟踪,则甚至不需要它。     ,Sixto的路由解决方案更加优雅,但是,如果您使用的是4.0之前的框架版本,则客户端或调度端的消息检查器,甚至调度端的错误处理程序都可能是\“拉伸解决方案(它们会完成jbo,但不是以理想的方式完成)。请参阅这篇非常长的文章和这篇同时讨论消息检查器和错误处理程序的文章。这是一个足够好的起点,可以找出这些选项是否对您有用。