我有一个由控制台应用程序组成的项目,该应用程序监听端口并在收到消息时起作用。
这些消息是从基于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}");
没有例外,它可以按照预期在我的计算机上运行,但不能从另一台机器运行。
我做了一些搜索,但没有设法让它发挥作用。 任何形式的帮助将不胜感激。
提前致谢!
答案 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}");