利用 Web Service 在 SharePoint 文档库中建立文件夹的2个注意点

   最近有个项目,需要做一些文件的管理,为了简化文件的管理决定将文件存储至公司的 SharePoint 2007 服务器上。由于文件需要分类就需要自动根据文件在 SharePoint 网站的文档库中建立文件夹。

   由于无法直接在 SharePoint Server 部署C#程序,因此只能远程调用 SharePoint 2007 的 Web Service。

 

1.Web Service 引用的SharePoint网站错误引起文件夹创建失败

    由于 SharePoint 的层次结构比较特殊,允许一个网站集下下挂多个虚拟的“网站”。因此,在Visual Studio 2005/2008 中进行 Web 引用时请注意 WebService 所在的网站。

    例如:有 SharePoint 访问地址 http://servername/sites/files。其中 sites 和 files 分别为整个网站集的 二级 和 三级
“网站”。因此,如果用户需要在“网站” “files” 下调用 Web Service ,则引用地址设置为 http://servername/sites/files/_vti_bin/dws.asmx。
请注意:光在此引用还不行,需要在代码中手工指定Web Service代理所引用的地址。

以下代码是我声明一个WebService代理,用于在文档库“DocLib1”中建立文件夹“Test1”,并手工指定代理的url的代码。其中CreateFolder(string) 返回的是一个 string 值,
如果返回为<Result/>则说明执行成功。“DocLib1”为网站files下的“库”的英文名,用户可以进入此库之后在地址栏中看到
http://sp.sim.com/sites/files/DocLib1/Forms/AllItems.aspx


 

2.因目录权限分配不合理造成创建文件夹失败 

    SharePoint 的 Web Service 建立文件夹的时候会进行用户认证,有文档库路径 DocLib1/Test1/T1 如果用户之拥有 T1 的完全控制权限,却没有拥有 Test1 的任何访问权限时就会出现 "FolderNotFound" 的返回错误。经过排查,CreateFolder 方法在建立目录时候是循环查询各级目录,直至最后一个目录 T1 ,如果用户无中间任何一级目录的访问权限检查就会失败,CreateFolder方法会认为此目录不存在。此时只需要为创建目录的帐号在缺失权限目录分配“仅查看”权限即可。这样CreateFolder方法就会正常的找到每级目录,正常创建目录了。

 

 

 

参考资料:

 

BLOG: MSDN 的一点小误解(创建文件夹出错)

MSDN: Dws.CreateFolder 方法 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值