我試圖在一個exe文件(ServiceRuntime.RegisterServiceAsync)中註冊多個服務結構服務。這是否支持?如果是這樣,我將如何配置它們?服務結構:在ServiceManifest.xml中允許多種服務類型
例如:ServiceManifest.xml支持多個StatelessServiceType元件ServiceTypes內:
<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="EchoGatewayPkg"
Version="1.0.0"
xmlns="http://schemas.microsoft.com/2011/01/fabric"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ServiceTypes>
<StatelessServiceType ServiceTypeName="Service1Type" >
</StatelessServiceType>
<StatelessServiceType ServiceTypeName="Service2Type" >
</StatelessServiceType>
</ServiceTypes>
...
和ApplicationManifest.xml不支持DefaultServices /服務內的多個StatelessService元素:
<?xml version="1.0" encoding="utf-8"?>
<ApplicationManifest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="EchoServiceType" ApplicationTypeVersion="1.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">
<Parameters>
<Parameter Name="Service1_InstanceCount" DefaultValue="1" />
<Parameter Name="Service2_InstanceCount" DefaultValue="1" />
</Parameters>
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="MyServicePkg" ServiceManifestVersion="1.0.0" />
<ConfigOverrides />
</ServiceManifestImport>
<DefaultServices>
<Service Name="MyService1">
<StatelessService ServiceTypeName="Service1Type" InstanceCount="[Service1_InstanceCount]">
<SingletonPartition />
</StatelessService>
</Service>
<Service Name="MyService2">
<StatelessService ServiceTypeName="Service2Type" InstanceCount="[Service2_InstanceCount]">
<SingletonPartition />
</StatelessService>
</Service>
</DefaultServices>
</ApplicationManifest>
因此,這有效地產卵2進程,並且每個進程的激活上下文都列出了兩種默認的服務類型(我預計只有一種使用此配置)。
歡迎任何建議(關於如何在單個exe中配置多種服務類型)或說明。
你真的想這樣做?我在幾個月前想過自己做這件事,但後來想起了微服務和單一職責,所以現在每項服務都進入了它自己的可執行程序。 –