一个朋友遇到一个SharePoint站点无法打开的问题, 一打开就报当前登录用户无权限登录站点的错误.

  1. 使用站点管理员登录, 失败.
  2. 使用场管理员登录, 失败.
  3. 在管理中心里使用web application policy赋予一个账户完全控制权限, 还是失败.
  4. 新建web application, 把content database挂过去, 还是失败.
  5. ULS日志里的信息是索要某permission mask, 但是实际是某permission mask.
  6. 同web application下的其他site collection均能正常访问.

这个问题真的让人很崩溃.

 

最后动用绝招, 使用了一个以前的backup的content database, restore后, 问题解决, 站点恢复了访问.

 

后来经过细细排查, 发现竟然是这样的原因:

之前SharePoint服务器场管理员为了对这个站点集进行备份, 在管理中心的Site Collection Quotas and Locks页面中, 把这个站点集给lock住了. 注意, 在SharePoint SP2之前, 这个是备份前的标准动作. 还可以使用stsadm命令行工具进行这个操作, 顺序如下:

1. 查看站点集的lock状态:

        stsadm -o getsitelock -url http://server_name

2. 锁住站点集:

        stsadm -o setsitelock -url http://server_name -lock noaccess

3. 执行备份:

        stsadm -o backup -url http://server_name -filename "filename.bak" -overwrite

4. 解除站点集锁:

        stsadm -o setsitelock -url http://server_name -lock none

 

在SP2之后, 站点集会在备份动作开始之前自动地锁为"只读"状态. 如果不想锁, 那还必须得调stsadm来解除锁.

 

场管理员执行了备份操作之后, 忘记了给站点集解锁. 刚好, 这个朋友的站点集上有那么一些自定义的solution, 而这些solution在打开站点的时候一定要拥有写权限. 于是导致了文章开头那样奇怪的问题.

 

SharePoint产品是很强大, 可是要想用好不容易呀~~~~

 

参考资料:

Setsitelock: Stsadm operation (Office SharePoint Server)

http://technet.microsoft.com/en-us/library/cc262811%28office.12%29.aspx

Backup: Stsadm operation (Office SharePoint Server)

http://technet.microsoft.com/en-us/library/cc263441%28office.12%29.aspx?track=cc_exchange_sync

相关文章: