自动启动appfabric似乎按顺序工作

时间:2013-07-09 10:30:39

标签: wcf iis iis-7.5 appfabric

我有几个wcf服务,它们会在启动时调用注册服务(通过自定义的ServiceHostFactory)。所有这些服务(包括注册服务)都在同一个应用程序池中运行。我安装了appfabric来自动启动所有服务。我不会解释所有的详细设置(因为我认为它还没有必要),但简而言之,这些服务使用net.tcp绑定并在Windows 7上的IIS 7.5中运行。

问题: 当我将所有服务设置为自动启动时,它将以一个(随机)服务开始,此服务尝试连接到注册服务。但不知何故,这种注册服务将无法启动。看起来它想要按顺序启动所有服务。

(不想要的)解决方案1: 当我将注册服务放在它自己的应用程序池中时,一切正常,并且服务器在几秒钟内上线并自行注册。

(不想要的)解决方案2: 当我禁用自动启动并尝试在iisreset之后访问其中一个服务时,一切正常。该服务将尝试注册自己,并且轮流将开始注册服务。

我是appfabric的新手,所以可能是一些简单的配置问题。但奇怪的是它不会在自动启动时起作用,但似乎可以通过手动启动来正常工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

AppFabric自动启动功能没有优先权。您不能假设一个服务将始终在其他服务之前启动。此外,你不能假设他们会同时开始。

对于特定情况,建议使用WCF 4.0 Discovery and Announcement。公告功能使服务能够宣布其可用性(通过发送Hello和Bye公告),而发现功能允许客户端在运行时发现服务地址。

您的所有服务都在同一台服务器上?可能与使用namedPipeBinding相关。