2011-03-20 73 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