【问题标题】:Could not find part of the path找不到部分路径
【发布时间】:2018-05-31 17:49:24
【问题描述】:

好的,在我说其他内容之前,请注意,我知道这已在 SO 上被多次询问。但是,我已经搜索了互联网,但无法为我的特殊情况找到解决方案。

我正在尝试获取一个 XmlDocument 对象并将其保存到网络驱动器。当我尝试将其保存到我的本地 C 驱动器时,它工作得很好,但是当我尝试保存到网络驱动器时,无论是在本地测试还是从 IIS7 Web 服务器进行测试,我都会收到错误“找不到路径的一部分 V:\测试\DocName.xml”。这是我用来尝试完成此操作的代码:

using (var stream = new FileStream(Path.Combine(@"V:\Test", doc.DocumentElement.Name + ".xml"), FileMode.Create, FileAccess.Write))
    doc.Save(stream);

doc 当然是一个 XmlDocument。我已经双重和三重检查了我对该目录的权限,并且我知道它存在并且没有隐藏或任何东西。有什么想法吗?

【问题讨论】:

  • 而V是服务器上的映射网络驱动器?并且目录 Test 存在吗?
  • 是的,我相信这是正确的
  • 是的,测试存在
  • 我会远程访问您的网络服务器,并确保它正确映射了 V 盘。
  • 如果您打开 Windows 资源管理器,单击地址行并粘贴:`V:\Test\`,会发生什么?它会打开那个目录吗?

标签: c# xml iis directory xmldocument


【解决方案1】:

AFAIK 驱动器映射是每个用户的。在this answer 中查看更多信息。

这意味着如果 Visual Studio 未在与您的映射相同的帐户下运行,它将找不到它。

IIS 也可能在不同的“用户”下运行。那里也一样。

【讨论】:

    【解决方案2】:

    来自Using Mapped Drives with IIS

    驱动器映射是 net use 命令的扩展,是基于每个用户创建的。也就是说,驱动器映射的条目存在于映射到网络驱动器的用户的 Hkey_Current_User 注册表项下。此外,驱动器映射是使用当前登录用户的凭据创建的。

    由于 .NET 网站在 AppPool 中运行并且这与一个帐户相关联,通常是一个服务帐户,它不会识别任何驱动器映射。

    建议在 .NET 应用程序中使用 UNC 路径而不是驱动器映射。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 2017-05-03
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多