Ich habe einen zustandslosen ASP.net Core 2.0-Dienst und einen zustandsabhängigen Asp.net Core 2.0-Dienst auf Service Fabric 6 mit 10 Partitionsanzahl.Client versucht, eine Verbindung mit ungültiger Adresse auf Service Fabric herzustellen. ServiceProxy
folgte ich dieses Tutorial
https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-add-a-web-frontend
ich alle Schritte befolgt, außer dass ich die Vorlagen in Visual Studio verwendet, wo CreateServiceReplicaListeners unter Verwendung KestrelCommunicationListener
protected override IEnumerable<ServiceReplicaListener> CreateServiceReplicaListeners()
{
return new ServiceReplicaListener[]
{
new ServiceReplicaListener(serviceContext =>
new KestrelCommunicationListener(serviceContext, (url, listener) =>
{
return new WebHostBuilder()
.UseKestrel()
.ConfigureServices(
services => services
.AddSingleton<StatefulServiceContext>(serviceContext)
.AddSingleton<IReliableStateManager>(this.StateManager))
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.UseUniqueServiceUrl)
.UseUrls(url)
.Build();
}))
};
}
Als ich meinen Dienst rufen in der Asp.net Core 2.0 Staatenlosen Service mit diesem Code:
var service = ServiceProxy.Create<IStorageService>(new Uri("fabric:/MyCluster/Storage"), new ServicePartitionKey(Fnv1aHashCode.Get64bitHashCode(User.Id)));
await service.MyMethod();
eine Ausnahme ausgelöst wird, wenn "MyMethod"
Client-Aufruf versucht, ungültige Adresse http://localhost:58352/etc ..
Die URL in der Ausnahme ist im Service Fabric Explorer vorhanden zu verbinden, und die Port und PartitionKey ist korrekt. Im ServiceManifest sind keine Endpunkte festgelegt, da der Stateful-Dienst im Grunde nur die Vorlage mit der IService-Schnittstelle und der MyMethod-Methode gemäß obigem Lernprogramm ist.
Was fehlt mir hier? Die Dokumentation ist nicht aktuell für Asp.net Core 2.0.
Ich habe versucht, keine Partitionen zu verwenden, Einstellung ServicePartitionKey(0)
aber dasselbe Ergebnis.
Ich weiß nicht weiter.
Dank, verwirrte ich die beiden Stapel. Können Sie Code oder Dokumente freigeben, um den Endpunkt, der mit dem von KestrelCommunicationListener bereitgestellten HTTP-Endpunkt verfügbar gemacht wurde, aufzurufen? –