【问题标题】:Cannot execute System.IO.File.Move to a network drive from SharePoint Server 2007 (MOSS)无法从 SharePoint Server 2007 (MOSS) 执行 System.IO.File.Move 到网络驱动器
【发布时间】:2011-01-11 06:59:54
【问题描述】:

我正在使用 VS2008 C# 和 MOSS (SharePoint Server 2007)。

我创建了一个显示在 SharePoint 网站内的 WebPart 上的 asp.net Web 表单。提交表单时,会生成一个小的 .csv 文件。理想情况下,我希望在网络驱动器(在另一台服务器上)上创建此文件,但由于某种原因我不能这样做。我可以在我正在处理的 SharePoint 服务器本身的硬盘驱动器上愉快地创建文件,但它永远不会出现在我选择的任何网络驱动器上。

然后我想我会先在我的 c: 驱动器上创建文件(因为它可以工作),然后使用 asp.net 将文件“移动”到网络目录。我用过:

System.IO.File.Move(sourceFile, destinationFile);

这在“移动”阶段也失败了。 - 文件创建得很好!在我正在处理的 MOSS 服务器上,有一个 C: 驱动器和一个 D: 驱动器(已分区)。文件创建在两个驱动器上都可以正常工作,但不是任何网络驱动器,即使我避免使用如下驱动器映射:

(例如 "G:\\Group Files\\""\\\\Global\\Group Files\\"

显然,我认为安全性是一个问题,因此我确保 MOSS 服务器和网络服务器都允许使用 Active Directory 进行“完全访问”。我什至以用户、管理员组、ASPNET 帐户、NETWORK SERVICE 帐户(以及其他)等身份授予我自己的访问权限,并具有 MODIFY 访问权限。仍然没有喜悦。我可以 PING 想要在其上创建 .csv 文件的网络服务器,所以它正在“看到”它。

我所做的解决方法是在 SharePoint 服务器的 c: 驱动器上创建文件,然后运行一个批处理文件(按计划),将文件纯粹复制到目标 G: 驱动器 - 这是一种享受,但是我很沮丧,我无法使用代码立即在目标服务器上创建文件。

我有一种预感,它与 SharePoint 相关,但如果有人能阐明这件事,我将不胜感激!!

提前致谢,阿什 ;-)

【问题讨论】:

  • 听起来确实是个安全问题。在 IIS 中运行您的 SharePoint 应用程序池的用户 ID 是否有权访问您指定的目录?
  • 嗨,Brian,没有异常消息。史蒂夫,对于你的问题,我不是 100% 确定的。我会知道的(目前正在休假,所以我会尽快回来)。谢谢你们。
  • 史蒂夫,是的,这个 ID 确实有访问权限。

标签: asp.net sharepoint-2007 web-parts .net


【解决方案1】:

啊,我今天遇到了这个问题,在寻找答案时发现了这个帖子。我的问题是我的临时目录没有正确的权限!当然,我可以毫无问题地上传文件,但除非我使用 LAN 帐户,否则我无法移动它。我确保 NETWORK SERVICE 和我的 sharepoint 应用程序池具有访问权限,并确保上传文件的用户也具有权限。然后就成功了。

【讨论】:

    猜你喜欢
    • 2010-10-30
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多