Windows Server 2003 R2目录连接问题:远程读JPG文件报错67求助
嘿,你遇到的错误67(指定的网络名称未找到),核心问题全在参数的格式和取值上,咱们一步步拆解修正:
一、先搞懂错误67的本质
这个错误说白了就是系统完全识别不了你指定的远程共享资源路径——要么格式错了,要么目标共享根本不存在/不可达,咱们先从最关键的参数改起。
二、逐个修正你的参数问题
1. localName = "F:"
这个格式是对的,它指的是本地Windows系统中未被占用的盘符,用来把远程共享映射成本地盘符。需要注意的是:WebForm所在的进程(比如IIS应用池账户)得有权限挂载盘符,而且F盘当前不能被本地其他程序占用。不过这不是你现在报错的原因,先记着就行。
2. networkName = "servidor_99"
这是错误67的主要元凶!正确的远程共享路径必须是完整格式:
- 要么是
\\服务器IP\共享文件夹名称(比如\\192.168.1.100\ImageStorage) - 要么是
\\服务器计算机名\共享文件夹名称(内网能解析计算机名的情况下,比如\\servidor_99\PhotoShare)
你直接写servidor_99,系统完全不知道这是啥——它需要明确的“服务器地址+共享目录”才能定位资源。
3. objnetCred 凭据参数
你把Domain设成"999.999.99.999"是完全错误的!Domain的正确取值分两种情况:
- 如果目标Windows Server 2003是加入域环境的:填域的名称(比如
CORP_DOMAIN) - 如果是工作组模式(2003很多是这种):填目标服务器的计算机名(比如
servidor_99),或者直接把用户名写成服务器名\用户名的格式(比如servidor_99\usernamexxx),此时Domain可以留空。
另外一定要确认这个用户名和密码确实有权限访问目标共享文件夹,并且能读取里面的.jpg文件。
三、修正后的代码参考
// 正确的远程共享路径(替换成你的实际IP/计算机名+共享文件夹) string networkName = @"\\192.168.x.x\YourImageShare"; // 本地未被占用的盘符 string localName = "F:"; // 工作组模式下的凭据示例 NetworkCredential objnetCred = new NetworkCredential( userName: "usernamexxx", password: "xxxxxxxxxx", domain: "servidor_99" ); using (NetworkConnection nc = new NetworkConnection(localName, networkName, objnetCred)) { // 读取文件的逻辑示例 string targetFilePath = Path.Combine(localName, "target.jpg"); if (File.Exists(targetFilePath)) { // 这里处理你的文件读取操作 } }
四、额外要检查的点
- 确认WebForm的运行账户(比如IIS应用池的账户)有足够权限创建网络映射,别用默认的低权限账户。
- 检查远程Windows Server 2003的防火墙,确保开启了文件共享的相关端口(File and Printer Sharing)。
- 先在本地电脑上测试共享路径:打开
运行输入\\服务器IP\共享名,用你的用户名密码登录,看看能不能正常访问——能访问的话再把路径用到代码里,避免踩坑。
内容的提问来源于stack exchange,提问作者GABO1957
相关产品推荐
相关产品推荐

