2011-03-20 54 views
1

我正在写我的第一个WCF服务,我需要一些帮助,以我的架构。 AppPool包含7项服务。 (ConfigService,SwitchService,CameraService,TelescopeService等)。 ConfigService返回一个定义应该如何使用服务的xElement。这里是例子...WCF配置

<configuration> 
    <configSet name="Configuration 1" Available="True"> 
    <serviceSet name="SwitchService"> 
     <Driver DriverId="ASCOM.Simulator.NWaySwitchDriver" ui="Standard"/> 
    </serviceSet> 
    <serviceSet name="CameraService"> 
     <Driver DriverId="ASCOM.Simulator.Camera" ui="Standard"/> 
    </serviceSet> 
    </configSet> 
    <configSet name="Configuration 2" Available="True"> 
    <serviceSet name="SwitchService"> 
     <Driver DriverId="ASCOM.Simulator.NWaySwitchDriver" ui="Standard"/> 
    </serviceSet> 
    </configSet> 
</configuration> 

的XML告诉消费应用程序了,该服务器设置为2点的配置和其服务和驱动程序配置为thoes服务。这也意味着一次只能连接两个应用程序,每个应用程序使用单独的配置。如果第三个应用正在尝试连接,则需要拒绝或者告知配置尚未可用。

如何管理服务,以便只有一个消费应用程序可以使用一个配置,该配置包含一个或多个服务?

回答

1

我认为你将不得不让你的服务“注册”消费应用程序,并将它传递回令牌。如果令牌匹配,后续调用只能工作。您将不得不设置某种超时以防止消耗服务超时。

+0

这似乎是可行的...我可以发回一个单一的可用configSet与它的令牌。哪里会是检查令牌的好地方。每个服务的构造函数都可以拥有这个吗? – 2011-03-20 13:29:23

+0

我不知道你是否应该假定WCF服务为每个服务调用实例化一个新类的类。我认为通常情况下,http和nettcp端点是这种情况。但是,如果您启用了asp.net会话支持或异国情调的端点类型,情况可能并非如此。 – 2011-03-20 13:36:50