2016-04-04 10 views
2

Ich bin in der Lage, das Beispiel OWIN selbst gehosteten Service-Fabric-Anwendung beschrieben here einfach gut lokal und sehen Sie die Ergebnisse mit HTTP-Anforderungen an localhost als XML-Dateien . Wenn ich die Anwendung jedoch auf einem Service Fabric in der Cloud veröffentliche, wie kann ich dieselben Anforderungen stellen? Der Endpunkt meines Service Fabric wird mir als [Fabric-Name] .westus.cloudapp.azure.com: 19000 zugewiesen, also habe ich [Fabric-Name] .westus.cloudapp.azure.com: 19000/api/values ​​ausprobiert, aber es hat mir gegeben eine Kauderwelsch-Download-Datei, in der ich die gleiche XML-Datei erwarten würde, die ich vorher bekommen habe. Die lokale Datei ServiceManifest.xml gibt einen Port von 8760, den ich für localhost verwende, aber auch nicht für die Cloud, und im Manifest, das ich in der Cloud sehe, ist kein Port aufgeführt.Endpunkt nach der Bereitstellung einer selbst gehosteten OWIN-Service-Fabric-Anwendung in der Cloud

Antwort

4

Haben Sie beim Erstellen Ihres Service Fabric-Clusters eine benutzerdefinierte Portnummer für Ihren OWIN-Endpunkt angegeben? Dies würde 8760 in Ihrem Fall sein:

specifying a custom SF endpoint port

Service-Fabric können Sie einen benutzerdefinierten Port angeben, unter Verwendung der oben + diesen Port in der Definition ServiceManifest.xml Endpoint angibt, oder wenn Sie keinen Port angeben

more details on endpoint port mapping in Service Fabric

0

Es klingt, als müssten Sie den Port 8760 im Load Balancer öffnen. Wechseln Sie zum Azure-Portal, suchen Sie die Load-Balancer-Einstellung und öffnen Sie den Port. Dann können Sie über [Fabric-Name] .westus.cloudapp.azure.com: 8760/api/values ​​zugreifen.

+0

Dies sollte Kommentar sein – ketan

+1

Sie können derzeit keine Ports im Load Balancer hinzufügen, müssen Sie Ihren Cluster zerstören und neu starten. – mckjerral

4

-Port 19000 ist ein binäres Protokoll, das von den Management-Tool verwendet wird: man wird aus dem Bereich der verfügbaren Portnummern für Ihre SF Anwendung auf dem Endpunkt zugeordnet werden. Wie andere hier gesagt haben, ist die Sache, die Sie vermissen, den Port Ihres Dienstes (8760 in Ihrem Fall) öffentlich durch den Azure Load Balancer und zu öffnen, es muss als ein benutzerdefinierter Port auf jedem Knoten konfiguriert werden, den Sie für Ihren Dienst benötigen weiterlaufen. Der Azure Load Balancer leitet externen Datenverkehr an jeden Knoten weiter, für den der benutzerdefinierte Port angegeben wurde. Daher müssen Sie sicherstellen, dass auf jedem dieser Knoten mit ausgeführt wird. Sie können dies tun, indem Sie "-1" für die Instanzanzahl des Service verwenden.

+0

Ich habe die Bedeutung von -1 in der Dienstinstanz für eine Weile gesucht. Können Sie mich bitte auf die Dokumentation verweisen, die besagt, dass -1 bedeutet, dass Ihr Dienst bei allen Instanzen ausgeführt wird? Es wird sehr hilfreich für mich sein, danke! –

+0

Hier ist dokumentiert: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-manage-multiple-environment-app-configuration –

Verwandte Themen