Der richtige Name für die Fabrik ist WcfCommunicationClientFactory
, die in Microsoft.ServiceFabric.Services.Communication.Wcf.Client
Namensraum von Microsoft.ServiceFabric.Services.Wcf
NuGet package befindet. Aber es ist nicht kompatibel mit .Net Core
für jetzt, als Ganzes WCF
Ansatz und Service Fabric sind nicht.
Service-Stoff Microservice ist ein REST-Dienste am Ende, so haben Sie drei Methoden, um es zu bewirten (from MSDN):
- Kein spezifisches Protokoll: Wenn Sie nicht über einen bestimmten Wahl des Kommunikationsframeworks, aber Sie möchten schnell etwas auf den Weg bringen, dann ist die ideale Option für Sie der Service remoting, der stark typisierte Remoteprozeduraufrufe für zuverlässige Dienste und zuverlässige Akteure ermöglicht. Dies ist der einfachste und schnellste Weg, um mit der Servicekommunikation zu beginnen. Dienst-Remoting behandelt die Auflösung von Dienstadressen, die Verbindung, die Wiederholung und die Fehlerbehandlung. Dies ist sowohl für C# - als auch für Java-Anwendungen verfügbar.
- HTTP: Für die sprachunabhängige Kommunikation bietet HTTP eine Industriestandardauswahl mit Tools und HTTP-Servern, die in vielen verschiedenen Sprachen verfügbar sind und von Service Fabric unterstützt werden. Dienste können jeden verfügbaren HTTP-Stapel verwenden, einschließlich ASP.NET Web API für C# -Anwendungen. In C# geschriebene Clients können die Klassen
ICommunicationClient
und ServicePartitionClient
nutzen, während Sie für Java die Klassen CommunicationClient und FabricServicePartitionClient für service resolution, HTTP connections, and retry loops verwenden.
- WCF: Wenn Sie über vorhandenen Code verfügen, der WCF als Kommunikationsframework verwendet, können Sie den WcfCommunicationListener für die Serverseite und WcfCommunicationClient und ServicePartitionClient für den Client verwenden. Dies ist jedoch nur für C# -Anwendungen in Windows-basierten Clustern verfügbar. Weitere Informationen finden Sie in diesem Artikel unter WCF-based implementation of the communication stack.
Hinweis: Sie benötigen ASP.NET Core tools for Visual Studio 2017. Die .NET Core-Tools für Visual Studio 2015 werden nicht mehr aktualisiert.
Hinweis # 2: Während ASP.NET Core-Anwendungen auf .NET Core oder dem vollständigen .NET Framework ausgeführt werden können, können Service Fabric-Dienste derzeit nur auf dem vollständigen .NET Framework ausgeführt werden. Das bedeutet, wenn Sie einen ASP.NET Core Service Fabric-Dienst erstellen, müssen Sie weiterhin auf das vollständige .NET Framework ausrichten. Daher ist keines von NuGet packages from Service Fabric auf das vollständige .NET Framework ausgerichtet.
ASP.NET Core-App kann als Gast ausführbare Datei auf Service-Fabric ohne Änderungen am Code gehostet werden, aber der empfohlene Weg, dies zu tun ist, um Hosting-ASP.NET Core in a Reliable Service mit Kestrel
(NuGet package) oder WebListener
(NuGet package):
Nach Web Frontend, Angular SPA, Xamarin oder einfach C#
HttpClient
, so Client vollständige .NET Framework nicht gezielt werden muss, aber Server ist - Sie Ihren Server in Service Fabric veröffentlichen, können Sie es mit HTTP
Protokoll von überall verbinden.
Einige Beispielcode:
static HttpClient client = new HttpClient();
client.BaseAddress = new Uri(MICRO_SERVICE_URI);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.GetAsync(path);
if (response.IsSuccessStatusCode)
{
// deserialize the result from JSON
var result = await response.Content.ReadAsAsync<DtoClass>();
}
Might diese https://blogs.msdn.microsoft.com/webdev/2016/06/26/wcf-connected-service-for-net-core-1- 0-0-und-asp-net-core-1-0-0-ist-jetzt-verfügbar/Hilfe? Der einfachste Weg ist die Verwendung zustandsloser Apis, die die Dienste von wcf im Cluster aufrufen. Client kann dann mit Ruhe verbinden. –