我在使用 API 方法 WNetAddConnection2 在 Windows XP 下映射网络驱动器 (WebDAV) 时遇到了问题。在Windows 7下,或者它像魅力一样工作。我的代码:
function ConnectDrive(Drive: string; Folder: string;
Username: string; Password: string; RestoreAtLogon: Boolean): HRESULT;
var
NetResource: TNetResource;
dwFlags: DWORD;
begin
with NetResource do
begin
dwType := RESOURCETYPE_DISK;
lpLocalName := PChar(Drive);
lpRemoteName := PChar(Folder);
lpProvider := nil;
end;
if (RestoreAtLogon) then
dwFlags := CONNECT_UPDATE_PROFILE
else
dwFlags := 0;
Result := WNetAddConnection2(NetResource, PChar(Password),
PChar(Username), dwFlags);
end;
每次我尝试连接 Windows 时都会告诉我:"找不到网络名称"或"找不到网络路径"
正如我之前所说,在Windows 7下没有问题。
如果我使用Netdrive等商业工具,则该程序在XP,Vista或Windows 7下安装驱动器没有问题。
有人知道吗?
提前致谢
您的问题可能有无数原因...但你可以试试:
- 最重要的事情:完全修补您的Windows安装(Windows Update - 最新SP和更新)。你可以与一个可以修复的错误作斗争(webdav-redirector-list)
- 确保您能够解析 webdav 服务器的名称(您是否正在使用 netbios (wins)、dns、hosts 文件?
- 指定 FQDN
- 指定 IP 地址
- 尝试使用
http://servername
或httpS(if supported)
代替 UNC (\servername
) - 尝试使用 NET USE 命令查看映射是否成功(将 WebDAV 文件夹映射为网络驱动器号)
- 检查 IIS 级别的身份验证配置(映射 WebDav 网络驱动器)
- 检查这些工作轮:WebDav@Wikipedia
- 使用网络嗅探器捕获和分析故障期间的网络流量(WireShark、网络监视器等)
希望这有帮助!