2016-08-02 20 views
2

Ich möchte http/80 Port für zwei verschiedene Webanwendung (Webpi/Website) in Service Fabric-Cluster freigeben, die Anwendung muss 2 verschiedene haben Hostname:"HTTP-Fehler 503. Der Dienst ist nicht verfügbar" bei Portfreigabe mit WebListener auf Service Fabric

mywebapi.com und mywebsite.com

wenn ich die Apps aus Stoff (Konsole app) laufen alles funktioniert gut:

Die erste Konsole App

var _webHost = new Microsoft.AspNetCore.Hosting.WebHostBuilder() 
    .UseWebListener().UseContentRoot(Directory.GetCurrentDirectory()) 
    .UseStartup<Startup>().UseUrls("http://myWebApi.com/").Build(); 

Die zweite Konsole App:

var _webHost = new Microsoft.AspNetCore.Hosting.WebHostBuilder() 
    .UseWebListener().UseContentRoot(Directory.GetCurrentDirectory()) 
               .UseStartup<Startup>() 
               .UseUrls(
               "http://myWebSite.com/" 
               ) 
               .Build(); 

aber wenn ich apps innerhalb eines lokalen Gewebe laufen i erhalten:

HTTP Error 503. The service is unavailable.

Ich habe Setup richtig ACL mit netsh und SetupEntryPoint(no Access Denied on open).

Auf Microsoft http.sys Guide explizite Host ist zulässig.

Antwort

0

Stellen Sie sicher, dass Sie alle HTTP-Endpunktkonfigurationen für Port 80 in Ihrer ServiceManifest.xml entfernen. Andernfalls überschreibt Service Fabric Ihre domänenspezifischen ACLs. Siehe hier für Informationen: host multiple public sites on service fabric

+0

Können Sie bestätigen, dass ich auch eine neue Firewall-Regel hinzufügen muss? Scheint, dass Fabric urlacl und eine Firewall-Regel für den Endpoint-Port erstellt. Wenn ich keine Firewall-Regel auf dem lokalen Rechner erstelle (Anmeldung am Rechnercluster und Navigieren mit dem Browser), ist der Standort erreichbar und erreichbar, aber außerhalb des Clusters ist der Port 80 geschlossen, weil der Fühler an diesem Port fehlschlägt. Befehle: netsh advfirewall Firewall Regel hinzufügen name = "FabricWebSite 80" dir = in Aktion = zulassen Protokoll = TCP localport = 80 netsh http URL hinzufügen url = http: //myWebApi.com: 80/user = "NT AUTHORITY \ NETZWERKDIENST " – Marco

0

Warum veröffentlichen Sie nicht nur beide auf einem Nicht-80-Port und verwenden Sie den Standard-Load Balancer, um es neu zuordnen?

+0

Haben Sie einige Dokumentation darüber? Ich lese Standard Load Balancer nicht" Route nach Hostname " – Marco

+0

Kann nicht viel helfen, nur uns in der Azure-Bildschirm starten hat es eine URL, die neu zugeordnet wird, kann es an die gebunden sein Standarddomäne . Längerfristig beabsichtigen wir, das .Core-Gateway zu verwenden, das viel Routing besitzt, das angepasst werden kann. – user1496062