在将一些组织强制要求的重新配置部署到支持 WSUS 的 IIS 服务器后,我在加载 WSUS 控制台时遇到错误。由于我自己找到了解决方案,并且在网上其他地方没有看到过,所以我认为在这里记录下来可能会对其他人有所帮助。
我的环境是在虚拟机中运行的 Windows Server 2019,仅托管默认 WSUS 安装提供的内容。
--
部署 IIS 重新配置后,WSUS 控制台失败,并显示如下错误:
WSUS 管理控制台无法通过远程 API 连接到 WSUS 服务器。请验证服务器上是否正在运行更新服务服务、IIS 和 SQL。如果问题仍然存在,请尝试重新启动 IIS、SQL 和更新服务服务。WSUS 管理控制台遇到意外错误。这可能是暂时性错误;请尝试重新启动管理控制台。如果此错误仍然存在,请尝试通过删除 %appdata%\Microsoft\MMC 下的 wsus 文件来删除控制台的持久首选项。System.IO.IOException -- 由于数据包格式意外,握手失败。源系统堆栈跟踪:在 System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.ForceAuthentication(Boolean receivedFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executiveContext, ContextCallback callback, Object state, Boolean retainSyncCtx) 在 System.Threading.ExecutionContext.Run(ExecutionContext executiveContext, ContextCallback callback, Object state, Boolean retainSyncCtx) 在 System.Threading.ExecutionContext.Run(ExecutionContext injection, ContextCallback callback, Object state) 在 System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result) 在 System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size) 在 System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size) 在 System.Net.ConnectStream.WriteHeaders(Boolean async) ** 此异常嵌套在以下异常中 ** System.Net.WebException -- 底层连接已关闭:发送时发生意外错误。源 Microsoft.UpdateServices.Administration 堆栈跟踪:位于 Microsoft.UpdateServices.Administration.AdminProxy.CreateUpdateServer(Object[] args) 位于 Microsoft.UpdateServices.UI.SnapIn.Scope.ServerSummaryScopeNode.GetUpdateServer(PersistedServerSettings 设置) 位于 Microsoft.UpdateServices.UI.SnapIn.Scope.ServerSummaryScopeNode.ConnectToServer() 位于 Microsoft.UpdateServices.UI.SnapIn.Scope.ServerSummaryScopeNode.get_ServerTools()
网上有多个地方提到了这个问题,但是我找到的解决方案都不起作用。这个错误似乎与 SSL 配置有关,但就我而言,这只是一个转移注意力的借口。按照网上的建议操作后,包括删除 %appdata%\Microsoft\MMC 中的 WSUS 文件。正如错误提示的那样,出现了 System.IO.IOException,我无法让控制台连接。
答案1
就我的具体情况而言,这与我的需求有关不允许IIS 内部 WSUS 管理网站上的“未列出的文件扩展名”。 您可以通过打开 IIS 控制台、单击“WSUS 管理”站点、单击站点 IIS 设置组内的“请求过滤”图标、然后单击该请求过滤菜单右侧的“编辑功能设置”来设置此项。
再次选中“允许未列出的文件扩展名”复选框,我能够让网站正常运行。我在这里记录此事,以防其他人遇到类似的问题。