如何解决如何从 IIS (Express) 中的远程主机接收 UDP 数据报?
我有一个 Web 应用程序,我想通过某些功能对其进行扩展。远程主机应通过 Udp 数据报通知应用有关传感器设备触发的事件。
我已经成功设置了远程主机,并且还设法编写了一个简单的 .NET 控制台应用程序,该应用程序打开一个 UdpClient 并通过 UdpClient.Receive() 方法将数据获取到控制台上。
现在我想将 Udp 接口集成到我在 IISExpress 10.0 Express 中托管的 Web 应用程序中。 但似乎 IIS 不允许我从远程主机接收 Udp 数据报。 UdpClient.Receive() 方法只是永远阻塞。没有例外,什么都没有。
我不太明白这里的问题是什么。我的控制台应用程序能够在同一端口上接收数据,因此它不可能是防火墙/全局系统配置错误。而且当我将一些 Udp 数据从本地应用程序发送到本地主机时,它甚至在 IIS 中也能工作。它似乎只是阻止了来自外部世界的 Udp 流量。
我认为,但这只是一个猜测,它与 applicationhost.config 中配置的绑定有关。我的应用程序当前仅配置为接受端口 5000 上的 http 请求,这可能导致 IIS 仅侦听端口 5000 上的 TCP 连接,而不侦听任何其他端口上的 UDP。
这是我使用的代码,它在 IIS 之外运行良好:
UdpClient client;
IPEndPoint local = new IPEndPoint(IPAddress.Any,3636);
IPEndPoint remote = new IPEndPoint(IPAddress.Any,0);
client = new UdpClient(remote);
byte[] bytes = client.Receive(ref remote);
Console.WriteLine(bytes.Length);
我有什么想法可以让它发挥作用吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。