代码改变世界

SharePoint 2010 使用Install-SPSolution部署wsp包状态一直是”正在部署”

2017-11-28 15:18  四毛的家  阅读(832)  评论(3编辑  收藏  举报

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,那么会收到如下错误: