OWIN自托管不接收来自外部的连接

时间:2016-03-12 17:17:31

标签: asp.net owin

我有一个由控制台应用程序组成的项目,该应用程序监听端口并在收到消息时起作用。

这些消息是从基于asp.net web api的网站收到的。

两者一起正常工作。

我想将两个解决方案合并到一个可执行文件中。 为了实现这一点,我使用了OWIN自托管解决方案。

我设法将网站合并到控制台应用程序中,当我在本地计算机上工作时,我设法看到网站,一切正常。

当我尝试从连接到LAN的另一台机器\设备打开网站时,会出现问题。

我没有回应。我知道这不是防火墙问题,因为我的OWIN自我托管使用独立网站的端口(我把网站放下来使端口可用)。

当两个解决方案分开时,这个问题都没有发生。 我认为这是一个owin配置问题。

我尝试使用以下代码,但是我获得了访问被拒绝的异常。

    options.Urls.Add($"http://{Dns.GetHostName()}:{port}");
    options.Urls.Add($"http://localhost:{port}");

如果我只使用

    options.Urls.Add($"http://localhost:{port}");

没有例外,它可以按照预期在我的计算机上运行,​​但不能从另一台机器运行。

我做了一些搜索,但没有设法让它发挥作用。 任何形式的帮助将不胜感激。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以使用特定的ip-address或使用*侦听端口

我使用下面的代码来获取特定的ip-address

            var ip = Dns.GetHostEntry(Dns.GetHostName());
            var ipaddress = ip.AddressList.FirstOrDefault(x => x.AddressFamily == AddressFamily.InterNetwork);
            options.Urls.Add($"http://{ipaddress}:{port}");

或者您也可以

         options.Urls.Add($"http://*:{port}");