c# - UWP Raspberry Pi 网络服务器问题

标签 c# windows raspberry-pi win-universal-app iot

我正在关注 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 核心版(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 电脑上运行,并且可以被我的另一台电脑访问,如果它们在同一网络上,但不在我的 Pi 上)

最佳答案

我找到了解决问题的方法。

我使用的端口没有在 Raspberry Pi 的防火墙中打开。我找不到如何向防火墙添加规则,但在 Freenode C# 聊天论坛上寻求帮助后,我找到了以下代码片段:

首先我通过 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(我正在使用)的发布说明中写道 http://ms-iot.github.io/content/en-US/win10/ReleaseNotesInsiderPreview.htm

关于c# - UWP Raspberry Pi 网络服务器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36502484/

相关文章:

c - 在 Intel X_86 和 ARM 架构上转储两个相邻的 C 数组时出现奇怪的不同结果

nginx - PHP setlocale 不起作用

c# - CSS 和 JS 文件未呈现

python - 通过python脚本启动停止服务和关闭

c# - 如何验证文本框?

java - 试图在main中调用子类的构造函数

python - 使用 Fortran 求解器在 Windows 64 位上安装 Odespy

linux - 用于运行和测试 ssh 命令的 Unix 编辑器

c# - 如何在 ASP.Net 4.0 中增加 url 的长度?

c# - 使用 Nest 字段提升的查询不会从 Elasticsearch 返回任何结果