2016-06-15 2 views
3

Gegenwärtig bietet VS 2015 Update 2 eine einfache Möglichkeit zum Erstellen eines eigenständigen zustandslosen Web-API-Dienstes mithilfe einer neuen Servicevorlage für Service Fabric-Anwendungen. Gibt es einen Grund, warum nur eine zustandslose Web-API-Service-Vorlage zur Verfügung gestellt wird und kein Stateful Web-API-Service? Wenn ich das möchte, kann ich den zustandslosen Web-API-Dienst so ändern, dass er aus einem Stateful-Web-Service stammt? Ist das so einfach? Oder gibt es irgendwelche Probleme mit diesem Ansatz?Statushafter Web-API-Dienst in Service Fabric in VS 2015 Update 2

+0

Bitte stimmen Sie für diese Funktion hier https://feedback.azure.com/forums/293901-service-fabric/suggestions/15083877-stateful-web-api-service-template –

Antwort

2

Web Api soll der Eingangspunkt für die Fassade/öffentlichen Zugang zur Service Fabric App sein. Statuslos zu sein, erspart den Clients das Auflösen von Partitionen/Adressen und anderen Problemen.

Wenn Sie möchten - Sie können Web-API-Dienst ändern und es Stateful machen. Vielleicht wäre es noch einfacher, statusbehafteten Service aus der Vorlage zu erstellen, fehlende Pakete zu installieren (diese Web-API-Vorlage), OwinCommunicationListener und Startup zu kopieren, sie in CreateServiceReplicaListeners override zu verdrahten und einen gültigen Service-Endpunkt zu ServiceManifest.xml hinzuzufügen. OwinCommunicationListener stellt für jedes Replikat eine eindeutige Adresse bereit.

1

Yup, Sie können es sicherlich ändern, um Stateful zu sein. Die Web-API eignet sich hervorragend für die interne Service-to-Service-Kommunikation sowie für eine öffentlich zugängliche API.

Es gibt einen Vorbehalt, den wir gerade durcharbeiten: Der Webhost für Staatenlose verwendet Kestrel, was einige Probleme für Stateful-Services mit sich bringt, bei denen mehrere Replikate denselben Prozess teilen, da Kestrel nicht die gleichen Port-Sharing-Funktionen hat dass http.sys-basierte Hosts tun. Wir arbeiten an einer Lösung, die es einfacher macht, Kestrel für Stateful zu verwenden, aber in der Zwischenzeit können Sie immer den WebListener-Host verwenden, bei dem es sich um den http.sys-basierten Host handelt.

Wenn Sie interessiert sind, arbeite ich an einem Projekt, das einen ASP.NET Core 1 Stateful Service (unter anderem coole Dinge) haben wird, die Sie hier verfolgen können: https://github.com/vturecek/service-fabric-xray.

+0

Können Sie mir helfen zu verstehen, warum ein Stateful Web API wäre sogar sinnvoll? Wahrscheinlichkeiten sind, dass es nur eine Kommunikationsschicht zu einem echten stateful Service ist, also würde die API keine wirkliche Logik darin haben. –

+0

ich werde stateful Web API für mein Projekt wie oben erstellen. Bitte teilen Sie uns jede Einschränkung mit –

Verwandte Themen