SharePoint站点无法打开的问题
一个朋友遇到一个SharePoint站点无法打开的问题, 一打开就报当前登录用户无权限登录站点的错误.
- 使用站点管理员登录, 失败.
- 使用场管理员登录, 失败.
- 在管理中心里使用web application policy赋予一个账户完全控制权限, 还是失败.
- 新建web application, 把content database挂过去, 还是失败.
- ULS日志里的信息是索要某permission mask, 但是实际是某permission mask.
- 同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