我最近为客户端添加了多个下游服务器到WSUS环境。 所有服务器都运行WSUS版本3 SP2(3.2.7600.226)。 他们似乎都工作得很好,只有一个例外。
问题的位置是可操作的,客户已经注册并且正在接收更新。 但是,从最初的一次起,每次同步都失败了。 WSUSpipe理控制台为每个失败的同步显示以下错误:
SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. 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.SqlDataReader.ReadInternal(Boolean setTimeout) at Microsoft.UpdateServices.DatabaseAccess.DBConnection.ReadOneRow() at Microsoft.UpdateServices.Internal.DataAccess.HideUpdatesForReplicaSync(String xmlUpdateIds) at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.ProcessHiddenUpdates(Guid[] hiddenUpdates) at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.ReplicaSync() at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.ExecuteSyncProtocol(Boolean allowRedirect)
这发生在同步结束时,服务器已经收到来自上游服务器的新更新之后。 这些变化似乎得到了妥善的保存,因为新的,修正的和过期的数字并没有不断攀升。
在每个故障发生时,我还会在事件查看器的应用程序日志中看到事件ID 10022和10032 。
我试图在上游服务器和下游服务器上运行服务器清理向导,但是当它到达删除未使用更新的阶段时,它就挂在两者上。 我在前一周左右在上游运行它,就在configuration所有下游服务器之前,它运行正常。
我也成功地运行这两个服务器上的微软论坛讨论reindexing脚本 。 (清理向导在此之后仍然挂起。)
在这个问题上,我在网上search了很多东西,但是我一直没能find适合这种情况的东西。 我不得不认为这个问题是特定于下游服务器的失败,因为其他人都工作正常。
有什么方法可以确定它到底在做什么?
似乎我已经find了解决我的问题,虽然我不知道为什么这不是在其他机器上的问题。 Windows Server的不同版本/ Service Pack上的内部数据库可能存在差异。
在SQL Serverconfigurationpipe理器(包含在SQL Server Management Studio中)中,内部数据库实例(MICROSOFT ## SSEE)在SQL Servernetworkingconfiguration下禁用了命名pipe道和TCP / IP。
启用两者后,同步开始正常工作。 我现在已经运行了多个同步,并且都工作正常。