我正在使用托管在控制台应用程序中的asp.net5网络项目。它在本地主机上运行得很好,但是当我尝试从不同的机器(如http://192.168.1.5:5432等)访问这个网站时,我得到了ERR_CONNECTION_TIMED_OUT。我尝试了几个类似让本地主机找到机器名称的方法,但是它们都没有用。
hosting.ini文件:
server=Microsoft.AspNet.Server.WebListener
server.urls=http://localhost:5432是否有任何解决此问题的解决方案,或者控制台应用程序中的托管仅用于开发目的。
发布于 2016-04-12 13:40:08
因为您已经将侦听器绑定到本地主机,所以它将只接受到(和来自) localhost的连接。localhost在这里是特殊的,因为它总是绑定到本地主机/回送接口(至少对Kestrel是这样)。除了localhost之外,其他一切都绑定到所有网络接口。
如果您希望所有it都可以访问它,并且是主机/域不可知论者,则必须使用http://0.0.0.0:5432 (或者替代http://*:5432)。如果您使用http://www.example.com:5432,那么它可以从所有的If中获得,但是只有在浏览器中输入主机名时才能到达,这样http://192.168.1.5:5432仍然不能工作(现在无法测试最后一个if,但是*通配符url仍然可以工作)。
通过这种方式,您可以在同一台服务器上运行多个asp.net核心应用程序,但使用不同的主机/域。
如果将两个应用程序绑定到不同的端点,也可以在同一个域和同一个端口上运行两个应用程序。
例如,http://www.example.com/App1和http://www.example.com/App2使用相同的端口和相同的域,但使用不同的端点和两个应用程序。
编辑
为windows用户添加信息。您可能必须在更改本地安全设置时添加一个异常,以允许dnx绑定到此端口/主机(或以Admin的身份运行,这将被阻止),特别是在使用主机和低编号端口(分别为80和443 )时。
netsh http add iplisten ipaddress=0.0.0.0:80
netsh http add urlacl url=http://+:80/ user=Example\Username这将允许用户“用户名”在域中“示例”中的应用程序开始监听端口80。
https://stackoverflow.com/questions/36574471
复制相似问题