几个月前,我在一台新服务器上重新安装了 WSUS,作为服务器硬件更新的一部分。它正常运行,可以下载、授权和向工作站提供补丁。
系统规格:
- HP DL360 G5
- 四轮2.5吉翁
- 6GB 内存
- 未虚拟化
- WSUS 3.2.7600.3226
- SQL 2005 速成版
- Windows 2003 R2 SP2
- 已启用 WSS SSL
每六个小时就会有五个事件记录到应用程序事件日志中:
来源 | 分类 | ID | 描述 -------------------------------------------------------------------------------------- Windows 服务器更新服务 | Web 服务 | 12052 | DSS 身份验证 Web 服务不起作用。 Windows Server 更新服务 | Web 服务 | 12042 | SimpleAuth Web 服务不起作用 Windows Server Update Services | Web 服务 | 12022 | 客户端 Web 服务不起作用 Windows Server Update Services | Web 服务 | 12032 | 服务器同步 Web 服务不起作用 Windows Server 更新服务 | Web 服务 | 12012 | API 远程 Web 服务不起作用
此外,还记录了以下 .NET 堆栈跟踪,C:\Program Files\Update Services\LogFiles\SoftwareDistribution.log
每个堆栈跟踪除服务名称外都是相同的:
2009-11-27 11:56:52.757 UTC 错误 WsusService.10 HmtWebServices.CheckApiRemotingWebService ApiRemoting WebService WebException:System.Net.WebException:请求失败,HTTP 状态 403:禁止访问。 在 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage 消息、WebResponse 响应、Stream responseStream、Boolean asyncCall) 在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (字符串方法名称,对象 [] 参数) 在 Microsoft.UpdateServices.Internal.ApiRemoting.Ping(Int32 pingLevel) 在 Microsoft.UpdateServices.Internal.HealthMonitoring.HmtWebServices.CheckApiRemotingWebService(EventLoggingType 类型,HealthEventLogger 记录器) 在 Microsoft.UpdateServices.Internal.HealthMonitoring.HmtWebServices.CheckApiRemotingWebService(EventLoggingType 类型,HealthEventLogger 记录器) 在 Microsoft.UpdateServices.Internal.HealthMonitoring.HealthMonitoringTasks.ExecuteSubtask(HealthMonitoringSubtask 子任务,EventLoggingType 类型,HealthEventLogger 记录器) 在 Microsoft.UpdateServices.Internal.HealthMonitoring.HmtWebServices.Execute(EventLoggingType 类型) 在 Microsoft.UpdateServices.Internal.HealthMonitoring.HealthMonitoringTasks.Execute(EventLoggingType 类型) 在 Microsoft.UpdateServices.Internal.HealthMonitoring.HealthMonitoringThreadManager.Execute(Boolean waitIfNecessary,EventLoggingType logsingType) 在 Microsoft.UpdateServices.Internal.HealthMonitoring.RemotingChannel.PrivateLogEvents() 在 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md、Object[] args、Object server、Int32 methodPtr、Boolean fExecuteInContext、Object[]& outArgs) 在 System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg、Int32 methodPtr、Boolean fExecuteInContext) 在 System.Runtime.Remoting.Messaging.ServerObjectTerminatorSink.SyncProcessMessage(IMessage reqMsg) 在 System.Runtime.Remoting.Lifetime.LeaseSink.SyncProcessMessage (IMessage 消息) 在 System.Runtime.Remoting.Messaging.ServerContextTerminatorSink.SyncProcessMessage(IMessage reqMsg) 在 System.Runtime.Remoting.Channels.CrossContextChannel.SyncProcessMessageCallback(Object[] args) 在 System.Runtime.Remoting.Channels.ChannelServices.DispatchMessage(IServerChannelSinkStack sinkStack、IMessage msg、IMessage& replyMsg) 在 System.Runtime.Remoting.Channels.SoapServerFormatterSink.ProcessMessage(IServerChannelSinkStack sinkStack、IMessage requestMsg、ITransportHeaders requestHeaders、Stream requestStream、IMessage& responseMsg、ITransportHeaders& responseHeaders、Stream& responseStream) 在 System.Runtime.Remoting.Channels.BinaryServerFormatterSink.ProcessMessage(IServerChannelSinkStack sinkStack、IMessage requestMsg、ITransportHeaders requestHeaders、Stream requestStream、IMessage& responseMsg、ITransportHeaders& responseHeaders、Stream& responseStream) 在 System.Runtime.Remoting.Channels.Ipc.IpcServerTransportSink.ServiceRequest(对象状态) 在 System.Runtime.Remoting.Channels.SocketHandler.ProcessRequestNow() 在 System.Runtime.Remoting.Channels.SocketHandler.BeginReadMessageCallback(IAsyncResult ar) 在 System.Runtime.Remoting.Channels.Ipc.IpcPort.AsyncFSCallback(UInt32 错误代码、UInt32 numBytes、NativeOverlapped* pOverlapped) 在 System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode、UInt32 numBytes、NativeOverlapped* pOVERLAP)
到目前为止我已经尝试了以下方法:
我发现您可以运行命令wsusutil checkhealth
来强制运行健康检查,wsusutil
可以在中找到C:\Program Files\Update Services\Tools
。执行此命令时,它会告诉您检查应用程序日志。
答案1
最终的解决方案是以下命令:
wsusutil configuressl update.company.com
替换为我们自颁发的 SSL 证书字段company.com
中引用的主机名。issued to
之后:
iisreset /noforce
和
wsusutil checkhealth
事件日志中记录了以下事件:
事件类型: 信息 事件来源:Windows Server Update Services 事件类别:核心 事件 ID:10000 用户:N/A 描述: WSUS 运行正常。
答案2
我们这里也遇到了同样的问题,只不过不是 HTTP 403 错误,而是 HTTP 502 错误。问题出在服务器上的代理设置上,一旦更正该设置,问题就解决了。