You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP IoT RPi3连接DLNA媒体服务器无法列出文件夹问题

解决RPi3 Core IoT访问Synology NAS文件报错的问题

我之前折腾IoT Core访问NAS的时候也踩过类似的坑,结合你已经做的排查,给你几个针对性的方向试试:

1. 先换IP地址访问,排除NetBIOS解析问题

Windows桌面版对局域网设备的NetBIOS名称解析很友好,但IoT Core的网络栈在这方面弱不少。你Win10上用的\\NAS名称\共享文件夹这种路径,到了RPi上可能根本解析不到NAS的位置。建议直接换成NAS的静态IP来访问,比如把\\MySynology\Audio改成\\192.168.x.x\Audio,先确认是不是名称解析导致的“找不到文件”。

2. 检查SMB协议版本的兼容性

Synology NAS默认一般开着SMB3,但有些旧版的IoT Core默认可能只支持SMB1(虽然SMB1不安全,但可以临时测试),或者需要手动指定协议版本。你可以先去Synology控制面板的「文件服务」->「SMB」里,确认SMB2/3是开启状态;然后在代码里尝试显式指定SMB版本连接,避免协议不匹配的问题。

3. 确认IoT Core应用的网络权限

PC端能访问不代表IoT Core应用有权限——IoT Core的应用是跑在受限容器里的,必须在Package.appxmanifest里声明privateNetworkClientServer能力,不然连局域网内的共享都碰不到。你去看看应用的清单文件里有没有加这个权限,没加的话补上再试试。

另外,NAS的共享权限要注意:IoT Core应用访问SMB共享时,没法直接用Windows桌面的凭据缓存,得在代码里显式传入NAS的用户名和密码。比如用C#的话可以这么写:

var nasCred = new NetworkCredential("你的NAS用户名", "你的NAS密码");
var credCache = new CredentialCache();
credCache.Add(new Uri(@"\\192.168.x.x\Audio"), "NTLM", nasCred);
// 之后用这个缓存去访问文件目录

4. 验证SMB端口是否能连通

虽然你能获取NAS的IP,但Ping通不代表SMB的445端口能正常访问。你可以用PowerShell连到RPi的IoT Core上,执行Test-NetConnection 192.168.x.x -Port 445,看看端口是不是通的。如果不通,要么是RPi的防火墙挡了,要么是NAS那边的防火墙限制了445端口的访问。

5. 先验证路径存在性,再枚举文件

别上来就直接枚举文件,先在代码里用Directory.Exists(@"\\192.168.x.x\Audio")判断一下共享路径能不能被识别。如果这个方法返回false,那就是路径本身的问题;如果返回true再去排查文件枚举的逻辑,这样能缩小问题范围。


内容的提问来源于stack exchange,提问作者LPatera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:30:58