asp.net5自托管WebListener连接超时

时间:2016-04-12 13:15:13

标签: asp.net-core asp.net-core-1.0

我正在使用控制台应用中托管的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

是否有针对此问题的解决方案,或者在控制台应用中托管仅用于开发目的

1 个答案:

答案 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/App1http://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.