WSUSを新たに構築して運用を始めると、高確率で遭遇する接続エラーについて、対処方法をご紹介します。
この現象、管理下のクライアント台数が多かったり、更新プログラムの同期対象が多い場合などに発生します。
接続エラーの症状について
エラー発生時は下記の画面が表示されます。
「サーバーノードのリセット」ボタンがあるので当然押しますが、全く改善されません・・・
「エラーをクリップボードにコピー」ボタンを押して、メモ帳などに張り付けてみると(Ctrl+V)、下記のようにHTTP 503エラーが発生していることがわかります。
WSUS 管理コンソールは、リモート API 経由で WSUS サーバーに接続できませんでした。
Update Services サービス、 IIS および SQL がサーバー上で実行されていることを確認してください。問題が解決しない場合は、IIS、SQL、および Update Services サービスを再起動してみてください。
System.Net.WebException -- HTTP ステータス 503: Service Unavailable で要求が失敗しました。
Source
System.Web.Services
Stack Trace:
場所 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
場所 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
場所 Microsoft.UpdateServices.Internal.ApiRemoting.ExecuteSPGetConfiguration()
場所 Microsoft.UpdateServices.Internal.DatabaseAccess.AdminDataAccessProxy.ExecuteSPGetConfiguration()
場所 Microsoft.UpdateServices.Internal.BaseApi.UpdateServerConfiguration.Load()
場所 Microsoft.UpdateServices.Internal.ClassFactory.CreateWellKnownType(Type type, Object[] args)
場所 Microsoft.UpdateServices.Internal.ClassFactory.CreateInstance(Type type, Object[] args)
場所 Microsoft.UpdateServices.Internal.BaseApi.UpdateServer.GetConfiguration()
場所 Microsoft.UpdateServices.UI.AdminApiAccess.CachedObject.RefreshCache()
場所 Microsoft.UpdateServices.UI.AdminApiAccess.CachedObject.GetFromCache()
場所 Microsoft.UpdateServices.UI.AdminApiAccess.PermissionsManager.IsPermitted(UserOperation operation)
場所 Microsoft.UpdateServices.UI.SnapIn.Scope.UpdatesSummaryScopeNode.RefreshPermissions()
場所 Microsoft.UpdateServices.UI.SnapIn.Scope.ServerSummaryScopeNode.AddChildNodes()
場所 Microsoft.UpdateServices.UI.SnapIn.Scope.ServerSummaryScopeNode.ConnectToServerAndPopulateNode(Boolean connectingServerToConsole)
場所 Microsoft.UpdateServices.UI.SnapIn.Scope.ServerSummaryScopeNode.ResetScopeNode()
原因と対処方法について
原因はIISのアプリケーションプールに割り当てられたメモリが少ないこと!
メモリの割当量を増やせば解決します。
この現象が発生したら、まずIIS管理ツール(インターネットインフォメーションサービス(IIS)マネージャー)を起動します。
IIS管理ツールが起動したら、左ペインでサーバ名直下にある「アプリケーションプール」をクリックします。
アプリケーションプールの一覧が表示されます。(接続エラー発生時「WsusPool」は停止状態)
「WsusPool」を右クリックすると出てくるメニューから「リサイクルの設定」を選択します。
重要なのは「プライベートメモリ使用量(KB)」と「定期的な期間(分)」の二つ。
下記の画面はデフォルトの状態を表しています。
プライベートメモリが約1.1GB、定期的な間隔が29時間に設定されています。
サーバのメモリに余裕があればメモリ使用量を4GB~8GB(4,194,304KB~8,388,608KB)程度に設定します。※Microsoft推奨値。
メモリに余裕がないよ!という場合は、メモリを2GB~4GB(2,097,152KB~4,194,304KB)、定期的な期間を10時間(600分)等の短い時間に設定してあげると良いでしょう。
上記はあくまで目安です。各自で数値を調整してみてください。メモリにもっと余裕ありなら8GB以上でもOK。
リサイクル設定が完了したら、下記の手順で停止中のアプリケーションプールを起動させてあげます。
アプリケーションプールの一覧から、「WsusPool」を右クリックして表示されるメニューで「開始」を選択します。
HTTP503エラー以外が発生した場合に参考になるサイト