OnQ

The worklife blog of Eriq Oliver Neale...

On Errors

This morning (November 12, 2007) a rash of reports are floating around the net about problems viewing the Monitoring report on SBS servers. This appears to be an issue with SBS R2 servers with the R2 WSUS installed. Several factors indicate the problem:

  1. The daily monitoring e-mail shows the following instead of the normal performance report:

    The page cannot be displayed

    An error occurred on the page you are trying to view.

    To work around this problem, perform the following steps. After each step, try again to access the page.
    • Ensure that the MSSQL$SBSMONITORING service is started.
    • Ensure that the server is not low on memory or disk space.
    • Restart the server.
    • Verify that the server is functional and that there are no system-wide problems.
    • Run the Set Up Monitoring Reports and Alerts task in the Server Management Monitoring and Reporting taskpad.
  2. You will see the same verbage when you open the Monitoring node in the Server Management console on the server.
  3. When you look in the event logs, you will see an error similar to:
  4. Event Type: Error
    Event Source: ServerStatusReports
    Event Category: None
    Event ID: 1
    Date:  11/12/2007
    Time:  6:00:15 AM
    User:  N/A
    Computer: SERVER
    Description:
    Server Status Report:
     URL:  http://localhost/monitoring/perf.aspx?reportMode=1&allHours=1
     Error Message: The specified string is invalid.
    Parameter name: Title
     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 Microsoft.UpdateServices.Internal.BaseApi.UpdateServer.GetUpdateCategories()
       at Microsoft.SBS.UpdateServices.DataProvider.GetScheduledUpdates()
       at Microsoft.SBS.UpdateServices.StatusPage.Utility.GetStatusItems()
       at usage.frmPerf.PopulateStatusItems()
       at usage.frmPerf.renderReportWorker()
       at usage.frmPerf.renderReport()

    For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
  5. When you try to open the Update Services node in the Server Management console, you will see a page similar to the following:

    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: c:\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) +418
       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) +3199
       Microsoft.SBS.UpdateServices.StatusPage.formHome.RenderPage() +23
       ASP.Home_aspx.__Render__control1(HtmlTextWriter __output, Control parameterContainer) in c:\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

    --------------------------------------------------------------------------------
    Version Information: Microsoft .NET Framework Version:1.1.4322.2407; ASP.NET Version:1.1.4322.2407

     

[Edited at 3:00pm CST]
I think there's a workable resolution for this now. I've done this on a couple of my sites, and it's resolved the issue. Here are the step-by-step instructions that got this working:

  1. Open a command prompt.
  2. Type the following at the prompt and hit Enter:
    osql -E -S %COMPUTERNAME%\WSUS
  3. Type the following lines at the prompt and press Enter after each one:
    use SUSDB
    Update tbPrecomputedCategoryLocalizedProperty
    Set Title = Replace(Title, '"', '')
    Where Title like '%"%'
    go
    [note that in the Set Title line, the characters are single-quote, double-quote, single-quote following Title and two single-quotes before the close parenthesis; also, in the Where Title line, the characters are single-quote, percent, double-quote, percent, single-quote]
  4. After you enter the "go" line, you should get a response that tells you how many rows were affected.
  5. Type the following lines at the prompt and press Enter after each one:
    Update tbPreComputedLocalizedProperty
    Set Title = Replace(Title, '"', '')
    Where Title like '%"%'
    go
    [note that the Set Title and Where Title lines are exactly the same as the first set of commands you entered]
  6. After you enter the "go" line, you should get a response that tells you how many rows were affected. It may take a little longer for this one to process.
  7. Type "quit" and press Enter to get out of OSQL.

Once you finish this, you should be able to go back into the Update Services node of Server Management and click Refresh to bring up the WSUS status again. Please note that I personally have only done this work for a couple of systems, and it resolved the issue (for the time being) on those boxes. This is NOT a permanent fix and could well break again if Microsoft issues another update that includes doulbe-quotes in the update title.

More information about the behind-the-scenes reasons for these issues were found in a thread at forums.techarena.in and another at SANS. At the time of this edit, there has been no info posted at the WSUS team blog.

[Edited at 3:40pm CST]
I have been informed that the faulty information that was pushed into WSUS yesterday has been updated and *should* automatically get pulled in during the next scheduled WSUS update. WSUS 3.0 can do a manual sync to get the update now, and WSUS 2.0 should get it at 10pm local time tonight. A post is expected from the Official SBS Blog later today. I plan to leave one of my servers in this state to confirm that this operation works as expected tonight, but will manually run the osql steps tomorrow if it does not.

Posted: Nov 12 2007, 09:18 AM by eriq | with 1 comment(s) |
Filed under: ,

Comments

OnQ said:

In yesterday&#39;s post , I covered the problems being seen in the community regarding the unexpected

# November 13, 2007 7:11 AM
Leave a Comment

(required) 

(required) 

(optional)

(required)