我正在使用控制台应用中托管的asp.net5网络项目。
它在localhost上工作正常,但当我尝试从http://192.168.1.5:5432
等不同的机器访问此网站时,我得到ERR_CONNECTION_TIMED_OUT
。
我正在尝试几种方法,例如将localhost转换为机器名称,但它们都不起作用。
hosting.ini文件:
server=Microsoft.AspNet.Server.WebListener
server.urls=http://localhost:5432
是否有针对此问题的解决方案,或者在控制台应用中托管仅用于开发目的
答案 0 :(得分:1)
因为您已将侦听器绑定到localhost,所以它只接受与localhost的连接。 localhost
在这里很特别,因为它(至少对于Kestrel)总是绑定到localhost / loopback接口。 localhost
以外的所有内容都绑定到所有网络接口。
如果您希望所有IP都可以访问它并且与主机/域无关,则必须使用http://0.0.0.0:5432
(或者http://*:5432
)。如果您执行http://www.example.com:5432
,则可以从所有IP访问它,但前提是在浏览器中输入主机名,以便http://192.168.1.5:5432
仍然无法正常工作(无法立即测试最后一个) ,但*通配符网址仍应有效。)
这样,您可以在同一台服务器上运行多个asp.net核心应用程序,但具有不同的主机/域。
如果将它们绑定到不同的端点,您还可以在同一域和同一端口上运行两个应用程序。
例如http://www.example.com/App1
和http://www.example.com/App2
,使用相同的端口和相同的域,但使用不同的端点和两个应用程序。
修改强>
Windows用户的添加信息。您可能必须添加一个例外来更改本地安全设置以允许dnx绑定到此端口/主机(或将其作为管理员运行,这是不鼓励的),尤其是在使用主机和低编号端口时(分别为80和443) )。
netsh http add iplisten ipaddress=0.0.0.0:80
netsh http add urlacl url=http://+:80/ user=Example\Username
这将允许用户的应用程序"用户名"在域"示例"开始收听端口80.