2016-08-02 41 views
2

我想共享服務結構集羣內兩個不同Web應用程序(webpi /網站)的http/80端口,應用程序必須有2個不同的主機名:「HTTP錯誤503.服務不可用」與服務結構上的WebListener共享端口

mywebapi.commywebsite.com

如果我運行的應用程序進行織物(控制檯應用程序)的一切工作正常:

第一個控制檯應用程序

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

第二控制檯應用程序:

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

,但如果我在本地的織物中運行的應用程序,我得到:

HTTP Error 503. The service is unavailable.

我設置正確ACLnetshSetupEntryPoint(no Access Denied on open)

在微軟http.sys指導顯式主機是允許的。

回答

0

確保您刪除ServiceManifest.xml中端口80的任何HTTP端點配置,否則Service Fabric將覆蓋您的特定於域的ACL。請參閱此處瞭解有關信息:host multiple public sites on service fabric

+0

您能否確認我還需要添加新的防火牆規則? 似乎織物創建urlacl和端點端口的防火牆規則。 如果我不在本地計算機上創建防火牆規則(在計算機羣集上登錄並使用瀏覽器導航)站點已啓動且可以訪問,但在羣集之外端口80已關閉,可能是因爲該端口上的探測失敗。 命令: netsh advfirewall firewall add rule name =「FabricWebSite 80」dir = in action = allow protocol = TCP localport = 80 netsh http add urlacl url = http://myWebApi.com:80/user =「NT AUTHORITY \網絡服務「 – Marco

0

爲什麼不只是將它們發佈到非80端口並使用默認負載平衡器重新映射它?

+0

你有一些關於它的文檔嗎?我讀的默認負載平衡器不」通過主機名路由「 – Marco

+0

無法幫助很多隻是在Azure屏幕上啓動自己,它有一個重新映射的url,它可能綁定到默認域。從長遠來看,我們打算使用具有大量可自定義路由的.Core網關。 – user1496062

相關問題