【问题标题】:Accessing mapped network drive from ColdFusion从 ColdFusion 访问映射的网络驱动器
【发布时间】:2010-05-21 20:20:56
【问题描述】:

我在访问 ColdFusion 中的映射驱动器时遇到问题。我将\\server\files\sharing 映射到z:\。如果我运行这段代码,它会说完整路径的目录存在,但映射的目录不存在:

<cfscript>
  fullPath = "\\server\files\sharing\reports";
  mappedPath = "z:\reports";

  WriteOutput("fullPath exists: #DirectoryExists(fullPath)#<br/>"); //YES
  WriteOutput("mappedPath exists: #DirectoryExists(mappedPath)#");  //NO
</cfscript>

我做了一些谷歌搜索,发现一些人有同样的问题,但解决方案始终是使用完整路径。 ColdFusion 是否有原因无法查看或访问映射的驱动器?如果是这样,是否有任何解决方法(可能是系统调用来获取映射驱动器的完整路径)?

【问题讨论】:

  • ColdFusion 服务在哪个用户下运行?
  • @AlEverett:它作为系统服务运行。任务管理器显示为“SYSTEM”
  • 这可能是问题所在。实际上,我在 CF 和访问驱动器方面遇到的所有问题都是因为“SYSTEM”对驱动器资源的访问非常有限。您需要以有权访问该驱动器/目录的用户身份运行它。
  • @AlEverett:但如果我使用完全限定名称(即 \\server\dir),系统可以访问它。它只对映射驱动器失败,我虽然就像一个别名。 (也许我错过了一些关于将网络路径映射到驱动器号的基本原理......)
  • 好的,但是当您尝试 Al 的建议(即在映射驱动器的同一用户帐户下运行 CF)时结果如何?

标签: windows networking file coldfusion


【解决方案1】:

ColdFusion 无法访问映射驱动器的原因是因为它在 Windows 中作为服务运行。

服务(或任何进程) 在不同的安全性中运行 上下文)必须访问远程 资源应使用通用 要访问的命名约定 (UNC) 名称 资源。

这是从以下知识库文章中提取的: http://support.microsoft.com/kb/180362

您可以将服务更改为作为已映射驱动器的个人用户运行(我尚未检查是否可行,但它可能),但您应该使用 UNC 路径而不是映射驱动器.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多