2015-10-18 87 views
1

我試圖啓動ASP.NET 5的Web應用程序,以便它可以通過公共Internet地址訪問,如「http://hostname.dom」。Kestrel支持URL /主機名,還是隻能監聽端口?

我不希望它通過「http://www.hostname.dom」,「http://test.hostname.dom」等無法訪問。我有DNS記錄配置爲指向服務器的IP地址通過「* .hostname.dom」和「hostname.dom」名稱。

於是我開始隼與參數:

server.urls=http://hostname.dom 

我希望它忽略不「http://hostname.dom」任何地址,但應用程序是每一個「http://justanything.hostname.dom」地址可用,甚至只是通過IP地址。所以它正在監聽所有對80端口的請求,而不是對特定主機名的請求。 例如,在配置IIS站點綁定時,可以指定類似「hostname.dom」的綁定,並且在顯式指定它們之前,它將忽略任何其他可能的前綴。

不紅隼支持URL /主機名,也只能聽一個端口?

回答

2

嗯,是的,紅隼不支持主機名聽力。只有ip:端口綁定。爲了使人們有可能,你,我的朋友,要麼必須使用其他託管解決方案(如WebListener,如果在Windows上運行)或配置轉發與一個Web服務器:http://druss.co/2015/06/asp-net-5-kestrel-nginx-web-server-on-linux/

+0

爲什麼這麼難?爲什麼我不能將它綁定到localhost:80與管理員?它定位爲Web服務器,爲什麼我的Web服務器在5000端口上運行? – ZOXEXIVO

+0

嗯,我認爲,這不是最糟糕的想法,因爲還有很多其他解決方案,例如安全性方面已經很成熟。所以你有一輛帶Kestrel的自行車,當你需要的只是一輛自行車時,這並不壞。 – yaapelsinko

+0

我也很驚訝地發現Kestrel忽略了主機名https://github.com/aspnet/KestrelHttpServer/issues/211#issuecomment-141608648 – Stajs