示例应用程序,代码: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< - Ofcourse我已经输入了我的实际本地IP),我得到了我应该得到的.应用程序得到一个传入的请求,并将一些数据返回给我(我的另一台计算机上的客户端). 我面临的问题是当我将其部署到运行Windows 10 IoT核心的Raspberry Pi 3(来自Insider的最新版本)时,我无法从客户端计算机访问该应用程序.这是Pi的防火墙或其他阻止这种情况的东西吗? 我可以通过端口8080访问IoT Core的Web界面,但是我无法访问在端口80上运行的应用程序.(我已经尝试将端口切换到另一个端口,在我的Windows 10本地工作但不在Pi上工作) 有没有人知道解决方案,或者遇到类似的问题? 注意:
我也尝试过像(https://ms-iot.github.io/content/en-US/win10/samples/BlinkyWebServer.htm)这样的例子,它可以在我的Windows 10个电脑上运行,如果它们在同一个网络上,可以被我的其他PC访问,但不能在我的Pi上访问
解决方法
我正在使用的端口没有在Raspberry Pi的防火墙中打开.我找不到如何向防火墙添加规则,但在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
在那之后,一切都按预期工作.我可以访问我的Raspberry Pi上的端口!都好!
感谢@ canton7和@ taylor-kidd在评论中提出的建议,最终帮助了我!
编辑4月12日:
似乎防火墙没有打开这个问题,实际上是微软已经知道的问题.他们在这里写了一篇关于Insider Preview版本14295(我正在使用的)的Relase笔记http://ms-iot.github.io/content/en-US/win10/ReleaseNotesInsiderPreview.htm