Nasza aplikacja do obsługi usług obejmuje usługę bezstanową, która udostępnia punkt końcowy HTTP przez OwinCommunicationListener
.Service Fabric Wiele instancji usługi z zastąpieniem konfiguracji
ServiceManifest.Xml za tę usługę określa punktu końcowego usługi <Endpoint Name="ServiceEndpoint" Type="Input" Protocol="http" Port="8090" />
bezstanowej usługi można następnie uzyskać za pośrednictwem przeglądarki na http://localhost:8090/
co staramy się robić to wystąpienia wielu wystąpień tej usługi na różne punkty końcowe w tej samej aplikacji Service Fabric za pośrednictwem ApplicationManifest.
Importuje nasz pakiet usług i umożliwia nadpisanie konfiguracji na poziomie aplikacji. Nie jesteśmy w stanie przesłonić ServiceEndpoint ten sposób, tylko wartości w settings.xml
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="FooServicePkg" ServiceManifestVersion="1.0.0" >
<ConfigOverrides Name="Config">
<Settings>
<SectionName Name="MySettings">
<Parameter Name="MySetting" Value="SomeValue">
</Settings>
</ConfigOverrides>
</ServiceManifestImport>
możemy utworzyć nazwany wystąpień usługi poprzez określenie wielokrotności Service
węzły pod
<DefaultServices>
<Service Name="FooInstanceA">
<StatelessService ServiceTypeName="FooType" InstanceCount="1" />
<SingletonPartition />
</StatelessService>
</Service>
<Service Name="FooInstanceB">
<StatelessService ServiceTypeName="FooType" InstanceCount="1" />
<SingletonPartition />
</StatelessService>
</Service>
</DefaultServices>
Czy możliwe jest określenie nadpisań konfiguracji na wystąpienie usługi poprzez konfigurację?
Próbowałem zrobić instancje usług słuchania na określonym porcie, używając ich nazwy usługi pracować który port tak FooInstanceA nasłuchuje na porcie 8090 i FooInstanceB nasłuchuje 8091.
Wyraźnie usługi Fabric robi jakąś magię podczas wdrażania, ponieważ gdy FooInstanceB nasłuchuje na porcie innym niż ten określony w konfiguracji ServiceEndpoint, usługa nie jest dostępna.
Pierwszym powodem jest to, że lista DACL nie jest ustawiona na punkcie końcowym, jest to rozwiązywane przez uruchomienie;
netsh http add urlacl http://+:8091/ user=everyone listen=yes
Pozwala to usługi wymyślić i pokazać zdrowy w służbie Fabric Explorer, jednak FooInstanceB reaguje z HTTP 503 błąd, gdy mamy dostęp z http://localhost:8091/
Jak możemy uzyskać instancji serwisowych słuchanie na różnych portach?
Mam nadzieję, że to jasne, dziękuję.
Czy kiedykolwiek to rozwiązałeś? Jeśli tak, czy nie myślisz podsumowując odpowiedź? – FlavorScape
Mam podobny problem. Mam jeden typ usługi, który chciałbym utworzyć wiele instancji z różnymi konfiguracjami. Teraz muszę zarejestrować inny typ usługi z tymi samymi, z wyjątkiem jednego parametru. Jestem zaskoczony, że SF nie ma możliwości przekazania dodatkowych parametrów do instancji serwisowych, oczekiwałbym, że będzie to powszechne miejsce. –