问题描述
我有一个 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 (将#修改为@)