在安装任何累积的更新或 Project Server 2007 或更高版本中 2008 年十月发布的服务包后,无法正常工作 SharePoint 产品和技术配置向导

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 971217
本文已归档。它按“原样”提供,并且不再更新。
症状
安装任何累积的更新或 Microsoft Office Project Server 2007 或更高版本中 2008 年十月发布的服务包后,SharePoint 产品和技术配置向导无法正常工作。此外,Upgrade.log 文件中记录以下错误消息:

Microsoft.Office.Project.Server.Upgrade.ReportingDatabaseUpgrader_12_1_153_0.Upgrade() 与 REFERENCE 约束冲突的 DELETE 语句"FK_MSP_TimesheetLine_TaskNameUID"。在数据库中发生冲突"TaskConsistency_ <instance_name> _Reporting",表"dbo.MSP_TimesheetLine",TaskNameUID 列。该语句已终止。 at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.Office.Server.Data.SqlSession.ExecuteScript(TextReader textReader, Int32 commandTimeout) at Microsoft.SharePoint.Upgrade.SPDatabaseAction.ExecuteSql(String sql, Int32 commandTimeout) at Microsoft.SharePoint.Upgrade.SPDatabaseAction.ExecuteSql(String sql)at Microsoft.Office.Project.Server.Upgrade.ReportingDatabaseUpgrader_12_1_153_0.Upgrade() at Microsoft.SharePoint.Upgrade.SPActionSequence.Upgrade()
注意默认状态下,该 Upgrade.log 文件位于以下文件夹: %ProgramFiles%\Common Files\Microsoft Shared\Web 服务器 Extensions\Logs\
原因
出现此问题是由于报告数据库中非常特定的条件。在极少数的情况下,报告的数据库中可能存在重复的记录。这些重复的记录可能会导致 SharePoint 产品和技术配置向导失败。
解决方案
在安装任何 Project Server 2007 累积更新或 service pack 在 2008 年十月或更高版本发布之前,使用下面的脚本检查中将报告数据库条件。

备注
  • 一次只能运行此检测脚本。 如果您收到一个正数,然后运行恢复脚本。 不要运行检测脚本第二次因为即使不再是一个问题将再次显示正值。 如果第二次运行检测脚本,并且仍然会得到结果为正的误报,这是设计使然。 检测脚本编写是非常敏感的问题导致故障的任何指示。但是,修补程序脚本被指出在修复导致失败的确切问题。 如果您重新运行检测脚本,则可能有仍然是一些小的详细信息在它的领料,您数据库中,但修复脚本将具有已修复的故障的根。
  • 如果您默认安装的 Project Server 数据库的名称命名 ProjectServer_Reporting。您也可以验证与 Project Server 站点通过 SharePoint 管理中心 Web 站点相关联的报告数据库的名称。

IF(      SELECT            DuplicatesCount = COUNT(*)      FROM  (                        -- Returns the TaskUID and the Latest date that are duplicates, along with the number of times they are duplicated                        SELECT                              TSTask.TaskUID,                              TSTask.LatestDate,                              DuplicatesCount = COUNT(TSTask.TaskNameUID)                        FROM (                                          -- This will return a 'copy' of the MSP_TimesheetTask table, but with the TaskUID fixed (by looking at the Assignments table)                                          SELECT                                                distinct(MSP_TimesheetTask.TaskNameUID), --Distinct, because when joining with lines we will have one row for each line, and so on                                                MSP_TimesheetTask.LatestDate,                                                TaskUID = ISNULL(MSP_EpmAssignment.TaskUID, MSP_TimesheetTask.TaskUID)                                          FROM dbo.MSP_TimesheetTask                                          LEFT OUTER JOIN MSP_TimesheetLine                                                ON MSP_TimesheetLine.TaskNameUID = dbo.MSP_TimesheetTask.TaskNameUID                                          LEFT OUTER JOIN dbo.MSP_TimesheetProject                                                ON MSP_TimesheetLine.ProjectNameUID = MSP_TimesheetProject.ProjectNameUID                                          LEFT OUTER JOIN dbo.MSP_EpmAssignment                                                ON MSP_EpmAssignment.ProjectUID = MSP_TimesheetProject.ProjectUID AND                                                      MSP_EpmAssignment.AssignmentUID = MSP_TimesheetLine.AssignmentUID                                ) AS TSTask                        GROUP BY TSTask.TaskUID, TSTask.LatestDate --Define groups: all the rows that have the same TaskUID and LatestDate                        HAVING COUNT(TSTask.TaskNameUID) > 1 --See if we have any groups that have more than one row in them. If there are this means the old upgrade will fail.                  ) AS Duplicates) > 0      PRINT 'A correctable data issue has been detected.  Please run the data correction script before upgrading your installation.'ELSE      PRINT 'No data issues were detected.  You can continue with your upgrade.'
如果此脚本会提供结果为正,与 Microsoft 客户支持联系获得帮助解决此问题。
状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。
更多信息
这是否为您的部署问题仅将一个问题一次。因此,您不必非要运行此脚本,如果满足下列条件之一为真,则:
  • 在 2008 年十月或更高版本中释放任何 Project Server 2007 累积更新是成功部署。
  • 成功地部署 2007 Office 服务器 Service Pack 2。
安全数据
您还会注意到在报告的数据库在版本表看起来将类似于这样:
VersionId Version 00000000-0000-0000-0000-000000000000 12.0.4518.1016 00000000-0000-0000-0000-000000000000 12.0.6218.1000 00000000-0000-0000-0000-000000000000 12.0.6300.5000 00000000-0000-0000-0000-000000000000 12.0.6318.5000 00000000-0000-0000-0000-000000000000 12.0.6327.5000 A1EF27C5-A62C-44A2-BEA8-D244C622A092 12.1.152.0
前几行取决于各种升级以前加载,但最后一行表示最后一个成功的升级步骤已 152,并为 12_1_153 升级操作失败。

警告:本文已自动翻译

属性

文章 ID:971217 - 上次审阅时间:01/15/2015 19:54:08 - 修订版本: 3.0

Microsoft Office Project Server 2007

  • kbnosurvey kbarchive kbmt kbexpertiseinter kbtshoot kbsurveynew kbprb KB971217 KbMtzh
反馈