UWP 树莓派 Web 服务器问题

6
我正在跟随一个Web服务器的示例应用程序,通过TCP和端口处理传入请求。
带有代码的示例应用程序:https://incredibits.io/project/windows-10-iot-internet-of-things-tips/windows-10-iot-raspberry-pi-web-server 当我在Windows 10机器上调试UWP应用程序,并尝试访问本地IP(192.168.x.x <- 当然我已经输入了我的实际本地IP),我得到了我应该得到的结果。应用程序接收到传入请求并向我(客户端)返回一些数据,这是在我的另一台计算机上进行的。
我面临的问题是,当我将此部署到运行Windows 10 IoT Core(最新的Insider版本)的Raspberry Pi 3上时,完全无法从我的客户端计算机访问该应用程序。这是Pi的防火墙还是其他阻止此操作的东西?
我可以通过端口8080访问IoT Core的Web界面,但我无法访问在端口80上运行的应用程序。(我也尝试过将端口切换到另一个端口,在我的Windows 10上本地工作,但在Pi上不行)
是否有人知道解决方案或遇到类似问题?
注意: 我还尝试过像(https://ms-iot.github.io/content/en-US/win10/samples/BlinkyWebServer.htm)这样的示例,再次,在我的Windows 10 PC上工作,并且如果它们在同一网络上,则可以由我的其他PC访问,但不能在我的Pi上使用。

1
好的,这是防火墙吗?禁用它应该是调试的第一步。 - canton7
@canton7 这就是问题所在,我已经搜索过了,似乎 Windows 10 IoT Core 上的 Raspberry Pi 没有防火墙?至少我无法通过 SSH 禁用它。 - Kevin Jensen Petersen
哇,这真的让我想起了什么。不幸的是,我正在度假,没有接触到我的所有东西。我没有使用Windows 10 IoT核心,而是在Intel Edison上使用Linux版本。几个注意事项。IoT核心针对工业物联网,所以我确定它具有集成安全性。尝试使用不同的客户端(而不是您的开发平台)。检查您的路由器、IoT核心和开发计算机防火墙。一些工业堆栈有白名单。 - Taylor Kidd
1个回答

6
我找到了解决我的问题的方法。
我使用的端口在树莓派的防火墙中没有打开。我找不到如何向防火墙添加规则,但在 Freenode C# Chat 论坛上得到一些帮助后,我找到了以下代码片段:
首先,我通过 PowerShell 登录到 Pi。
Enter-PsSession -ComputerName MyRaspberryPi-Credential MyRaspberryPi\Administrator

然后我手动添加防火墙开放我正在使用的端口。在这种情况下是端口8080。

netsh advfirewall firewall add rule name="Raspberry Pi Webserver" dir=in action=allow protocol=TCP localport=8080

之后,一切都按预期工作。我可以访问我的树莓派上的端口!一切都很好!

感谢评论区中 @canton7 和 @taylor-kidd 的建议,最终帮助了我!

编辑于4月12日:看起来防火墙未开启的问题实际上是微软已知的问题。在他们的内部预览版本14295(我正在使用)的发布说明中写到了这一点http://ms-iot.github.io/content/en-US/win10/ReleaseNotesInsiderPreview.htm


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接