WSUS 2.0 and 3.0 Errors On Small Business Server

[Today's post comes to us courtesy of Justin Crosby, Damian Leibaschoff, David Copeland, Mark Stanfill, Chris Puckett, and John Bay]  

We have discovered a new issue today with WSUS on SBS. You may receive the following error accessing Update Services from the SBS 2003 Server Management Console:

--------------------------------------------------------------------------------
Server Error in '/UpdateServices' Application.
--------------------------------------------------------------------------------

The specified string is invalid. Parameter name: Title
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: The specified string is invalid. Parameter name: Title

Source Error:

Line 194: </div>
Line 195: <%Response.Flush();
Line 196: RenderPage();%>
Line 197: <div id="divForm" style="display: none">
Line 198: <form id="formMain" method="post" runat="server">
Source File: d:\inetpub\UpdateServices\Home.aspx Line: 196

Stack Trace:
[ArgumentException: The specified string is invalid.
Parameter name: Title]
Microsoft.UpdateServices.Internal.StringValidation.ValidateUpdateContainerTitleString(String paramName, String value) +256
Microsoft.UpdateServices.Internal.BaseApi.UpdateContainer.set_Title(String value) +19
Microsoft.UpdateServices.Internal.BaseApi.UpdateContainer..ctor(GenericReadableRow row) +182

[WsusInvalidDataException: The specified string is invalid.
Parameter name: Title]
Microsoft.UpdateServices.Internal.BaseApi.UpdateContainer..ctor(GenericReadableRow row) +397
Microsoft.UpdateServices.Internal.BaseApi.UpdateCategory..ctor(GenericReadableRow row) +24
Microsoft.UpdateServices.Internal.BaseApi.UpdateCategory.BuildUpdateCategoryCollection(GenericReadableRow[] categoryRows) +415
Microsoft.UpdateServices.Internal.BaseApi.UpdateCategory.GetAll(DateTime fromSyncDate, DateTime toSyncDate) +134
Microsoft.UpdateServices.Internal.BaseApi.UpdateServer.GetUpdateCategories(DateTime fromSyncDate, DateTime toSyncDate) +23
Microsoft.UpdateServices.Internal.BaseApi.UpdateServer.GetUpdateCategories() +52
Microsoft.SBS.UpdateServices.DataProvider.GetScheduledUpdates() +140
Microsoft.SBS.UpdateServices.StatusPage.Utility.GetStatusItems(Boolean waitingForSyncStart) +3203
Microsoft.SBS.UpdateServices.StatusPage.formHome.RenderPage() +23
ASP.Home_aspx.__Render__control1(HtmlTextWriter __output, Control parameterContainer) in d:\inetpub\UpdateServices\Home.aspx:196
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +27
System.Web.UI.Control.Render(HtmlTextWriter writer) +7
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.Page.ProcessRequestMain() +1926

You may see the following event in your Application event log:

Event Type: Error
Event Source: ServerStatusReports
Event Category: None
Event ID: 1001
Date: 11/12/2007
Time: 1:14:39 AM
User: N/A
Computer: SBSSVR

Description:
A fatal error occurred either while synchronizing the Update Services computer groups with Group Policy or while moving the Unassigned Computers group. To see a detailed log, create a file called SyncSecurity.Log in %SBSProgramDir%\Support, and then run SyncSecurity.exe again. The error returned was: Cannot start service wsusservice on computer '.'.

For more information, see Help and Support Center at https://go.microsoft.com/fwlink/events.asp.

If you access the WSUS 2.0 console directly (https://servername:8530/WSUSAdmin) you may receive:

Windows Server Update Services encountered an error.

The specified string is invalid.
Parameter name: Title

Microsoft.UpdateServices.Administration.WsusInvalidDataException: The specified string is invalid.
Parameter name: Title ---> System.ArgumentException: The specified string is invalid.
Parameter name: Title
at Microsoft.UpdateServices.Internal.StringValidation.ValidateUpdateContainerTitleString(String paramName, String value)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateContainer.set_Title(String value)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateContainer..ctor(GenericReadableRow row)
--- End of inner exception stack trace ---
at Microsoft.UpdateServices.Internal.BaseApi.UpdateContainer..ctor(GenericReadableRow row)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateCategory..ctor(GenericReadableRow row)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateCategory.BuildUpdateCategoryCollection(GenericReadableRow[] categoryRows)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateCategory.GetAll(DateTime fromSyncDate, DateTime toSyncDate)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateServer.GetUpdateCategories(DateTime fromSyncDate, DateTime toSyncDate)
at Administration.Reporting.CurrentStatus.CurrentStatusProxy.GetHomeStatus()
at Administration.Reporting.ReportingXPost.Page_Load(Object sender, EventArgs e)

   at Microsoft.UpdateServices.Internal.BaseApi.UpdateContainer..ctor(GenericReadableRow row)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateCategory..ctor(GenericReadableRow row)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateCategory.BuildUpdateCategoryCollection(GenericReadableRow[] categoryRows)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateCategory.GetAll(DateTime fromSyncDate, DateTime toSyncDate)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateServer.GetUpdateCategories(DateTime fromSyncDate, DateTime toSyncDate)
at Administration.Reporting.CurrentStatus.CurrentStatusProxy.GetHomeStatus()
at Administration.Reporting.ReportingXPost.Page_Load(Object sender, EventArgs e)

If you try to access the Products and Classifications on a WSUS 3.0 install you may receive:

Error: Unexpected Error
An unexpected error occurred. Please contact your system administrator if the problem persist.

The WSUS administration console has encountered an unexpected error. This may be a transient error; try restarting the administration console. If this error persists,

Try removing the persisted preferences for the console by deleting the wsus file under %appdata%\Microsoft\MMC\.

The WSUS administration console has encountered an unexpected error. This may be a transient error; try restarting the administration console. If this error persists,

Try removing the persisted preferences for the console by deleting the wsus file under %appdata%\Microsoft\MMC\.

The WSUS administration console has encountered an unexpected error. This may be a transient error; try restarting the administration console. If this error persists,

Try removing the persisted preferences for the console by deleting the wsus file under %appdata%\Microsoft\MMC\.

System.ArgumentException -- The specified string is invalid.
Parameter name: Title

Source
Microsoft.UpdateServices.BaseApi

Stack Trace:
at Microsoft.UpdateServices.Internal.StringValidation.ValidateUpdateContainerTitleString(String paramName, String value)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateContainer..ctor(UpdateServer updateServer, GenericReadableRow row)
** this exception was nested inside of the following exception **

System.Reflection.TargetInvocationException -- Exception has been thrown by the target of an invocation.

Source
Microsoft.ManagementConsole

Stack Trace:
at Microsoft.ManagementConsole.Internal.SnapInMessagePumpProxy.OnThreadException(Object sender, ThreadExceptionEventArgs e)
at System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t)
at System.Windows.Forms.Application.OnThreadException(Exception t)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
** this exception was nested inside of the following exception **

System.Reflection.TargetInvocationException -- Exception has been thrown by the target of an invocation.

Source
Microsoft.ManagementConsole

Stack Trace:
at Microsoft.ManagementConsole.Internal.SnapInMessagePumpProxy.OnThreadException(Object sender, ThreadExceptionEventArgs e)
at System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t)
at System.Windows.Forms.Control.WndProcException(Exception e)
at System.Windows.Forms.Control.ControlNativeWindow.OnThreadException(Exception e)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
at Microsoft.ManagementConsole.Internal.ConsoleDialogHost.ShowDialog(WaitCursor waitCursor, ShowDialogCallback callback)
at Microsoft.ManagementConsole.Internal.ConsoleDialogHost.ShowDialog(Form form, WaitCursor waitCursor)
at Microsoft.ManagementConsole.Advanced.Console.ShowDialog(Form form)
at Microsoft.UpdateServices.UI.SnapIn.Pages.SettingsSummaryPage.UpdateCategoryAndClassificationSettingsTitle_LinkClicked(Object sender, LinkLabelLinkClickedEventArgs e)

Issue Resolution:

To resolve this issue all you need to do is synchronize WSUS with Windows Update. By default SBS synchronizes with Microsoft Update every day. Therefore this issue will resolve itself by tomorrow (11/13/2007). If you cannot wait until the manual synchronization you can initiate a manual synchronization by using the directions below:

WSUS 3.0

  1. Open WSUS 3.0 MMC
  2. Select Synchronizations
  3. Click the Synchronize Now action.

wsus.PNG

WSUS 2.0

There is not an easy way to start a manual synchronization on WSUS 2.0 when the console is already broken. We recommend WSUS 2.0 users wait for the automatic synchronization. If you feel that you cannot wait and are comfortable writing, compiling and then running custom code you can use the following method from a Microsoft MVP: https://msmvps.com/blogs/athif/archive/2005/11/21/76100.aspx. Please be sure to create a full server backup prior to running this code.