4

我在使用 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 下安装驱动器没有问题。

有人有想法吗?

提前致谢

4

1 回答 1

1

你的问题可能有无数的原因......但你可以尝试:

  • 最重要的是:完全修补您的 Windows 安装(Windows 更新 - 最新的 SP 和更新)。您可以解决可以修复的错误(webdav-redirector-list
  • 确保您能够解析 webdav 服务器的名称(您使用的是 netbios (wins)、dns、hosts 文件吗?)
  • 指定 FQDN
  • 指定 IP 地址
  • 尝试使用http://servernameorhttpS(if supported)代替 UNC ( \\servername)
  • 尝试使用 NET USE 命令查看映射是否成功(将WebDAV 文件夹映射为网络驱动器号
  • 检查 IIS 级别的身份验证配置(映射 WebDav 网络驱动器
  • 检查这些解决方法:WebDav@Wikipedia
  • 使用网络嗅探器捕获和分析故障期间的网络流量(WireShark、网络监视器等)

希望这可以帮助!

于 2012-10-25T21:39:33.203 回答