今天有同事反应了一个状况,我们SharePoint 2016里面集成的Project Web App(以下简称PWA)变成 read-only 只读模式了!

今天就给大家分享一下我的排查过程,供大家参考。 整个过程我一共使用了五种办法,结果最后一种才生效,但是这五种办法都是按照我们的惯性逻辑思路来排查的,大家可以依次看一下,我也不建议大家直接看最后的一种办法,因为你的问题不一定和我的问题一样,但是我觉得这五种办法中应该有你想要的。

问题的表现形式如下图

图片

方法一:

有过SharePoint Server 或者 SQL Server 经验的同学从这个截图来看,第一时间考虑的就是,“哦,可能是是SQL DB属性被改成 read-only模式了,改回来就好了!”

So am I !!!

然后乖乖的登上SQL Server,找到ProjectWebApp数据库,在属性-选项里面找到 数据库只读 选项。

咦!??! 这里并没有开启只读啊!! 顿时抓瞎了~

图片

 

方法二:

这个时候,维护过SharePoint的小伙伴会说,“不用担心,应该是站点集配合和锁定里面被修改了!”

然后在我们熟悉而又亲切的SharePoint控制台上,找到 应用管理-配置配合和锁定 设置。

p_w_picpath

 

点进去之后,在右上角选择您的 pwa 站点地址,这个应该比较容易找。

p_w_picpath

 

然后我们诧异的发现, 锁定状态是…………. 未锁定 !!! 继续抓瞎!!!

图片

 

方法三:

相信这个时候,大家就有点儿稳不起了,我当时也稳不起了!

如何破? 大家懂得 google….

找到了一篇至关重要的文章

https://blogs.technet.microsoft.com/projectsupport/2016/04/07/project-server-2016-if-your-pwa-site-goes-read-only/

简单总结一下,这篇文章提及到,这个问题其实是SharePoint的一个已知问题,只需要安装2016年5月的补丁 https://support.microsoft.com/en-us/kb/3115088  就可解决问题!

棒不棒?! 非常棒!!! 我们就装吧,安装过程就不说了,但是我这里依然…..依然没效!! 双眼已失明! !

 

方法四:

这个时候大家依然要保持镇定,文章中还提到了一个用命令来解决的办法,我们继续试一试。

其大概的意思就是说,从SharePoint Server 2016 和 Office 365 PWA online 开始,这个PWA的最大只读数据量被限定在了 10G !

我们可以通过下面的 get-SPProjectDatabaseQuota 来查看

p_w_picpath

果然,最大值和只读限定值都是10G,这样如果我们真的数据达到了这个值,那么我们就会被提示只读。

OK,显而易见,我们来尝试修改这个警告值。

通过下述命令来修改我们的只读限定值,目的就是这个值要低于最大数据库值

Set-SPProjectDatabaseQuota -Url http://servername/sites/pwa -Enabled:$false -ReadOnlyLimit 10200 -ReadOnlyWarningThreshold 90 -MaxDbSize 10240

p_w_picpath

之后我们再通过get-SPProjectDatabaseQuota 命令再来看一下是否生效。生效了!

p_w_picpath

OK,下面就是见证奇迹的时刻了!

Duang !!!!! 走远 !!!!

图片

 

方法五:

最后再绝望中继续 google一下,最后找了一篇救命的帖子,当然这个是救我的命,你们各位可能之前已经早就被救起来了,我就是那么悲催!

https://social.technet.microsoft.com/Forums/en-US/ccc0f77d-c112-4195-81a7-98ef273375c8/pwa-2016-site-readonlydisable-quota-doesnt-work?forum=projserv2010setup

这个帖子其实归纳一下就是说, 可能是 Project Server 2016 的License过期了!!!!

用Get-ProjectServerLicense 命令来查看!! 果然是一周前过期了!!

p_w_picpath

 

解决的办法也很简单,重新输入license 即可!!! 

Enable-ProjectServerLicense

p_w_picpath

PWA回复正常!!!!!

p_w_picpath

最后稍微吐槽一下MS,其实这个报警提示应该很简单的,直接提示说License过期就OK了,非要整个什么 read-only 来混淆视听…..

不过无所谓啦,解决了就好,希望以上的办法可以帮到遇到相同问题的你!