1.服务器场信息如下:
2.使用下面命令部署,状态一直是"正在部署"
Install-SPSolution –Identity xxxx.wsp –WebApplication http://<url> -GACDeployment
3.打开"事件查看器",错误信息如下:
SharePoint 运行状况分析器检测到错误。一个或多个服务意外地启动或停止。
以下数据库由 SharePoint 管理,但它们的运行状态不符合 SharePoint 期望的状态 SPAdminV4。如果服务崩溃或者管理员使用非 SharePoint 界面来启动或停止服务,则可能会出现这种情况。
如果 SharePoint 管理的服务不符合预期的运行状态,SharePoint 将无法正确为服务分配工作。
SharePoint 无法自动修复此错误。
要停止或启动 SharePoint 管理的服务,请使用 SharePoint 管理中心网站中的 SharePoint 服务管理界面。如果服务崩溃,请在受影响的服务器上通过命令提示符运行"net start [service name]",以此手动重新启动服务。
有关此规则的详细信息,请访问"http://go.microsoft.com/fwlink/?LinkID=142683"。
SharePoint管理中心------监控------复查问题和解决方案中,查看到错误:
4.解决办法:
查看所有SharePoint 服务器,确保SPAdminV4服务启动。启动方法:net start spadminv4
5.总结:
1.整个排查过程较为繁琐,因为部署过程被"卡"住,一度怀疑是计时器(SPTimerV4)有问题。
2.对于多服务器场,如果使用命令行部署wsp包,包内相关文件,比如可视web部件的ascx文件,会自动分发到场内所有sharepoint服务器。
但是如果某台SharePoint服务器中SPAdminV4服务未启动,那么wsp包内文件不会被分发过来。所以,如果发现某些服务器未分发wsp包文件,也可以检查该服务。
3.如上所述,部署wsp包时,包内文件会自动分发至场内所有SharePoint服务器,那么如果你不希望某些SP服务器部署wsp包,就可以在该服务器停用SPAdminV4服务。
比如:搜索服务器,索引服务器等。
4.如果只想在当前服务器部署,那么请在部署命令后面加参数Local,如下:
Install-SPSolution –Identity xxxx.wsp –WebApplication http://<url> -GACDeployment –Local
5.如果要执行部署命令的SharePoint服务器未启动SPAdminV4,那么会收到如下错误: