A Windows Rights Management Services (RMS) server does not issue Rights Account Certificates in SQL Server 2005 (913372)



The information in this article applies to:

  • Microsoft Windows Rights Management Services (RMS) for Windows Server 2003

SYMPTOMS

Consider the following scenario. One of the following conditions is true:
  • You successfully install and provision Windows Rights Management Services (RMS) by using Microsoft SQL Server 2005 as the database server.
  • You upgrade the existing Microsoft SQL Server 2000 installation to SQL Server 2005.
In this scenario, the RMS server does not issue rights account certificates (RACs) to new RMS users who use an RMS-enabled application such as Microsoft Office 2003. Additionally, the following event is logged in the application event log on the RMS server:
Event Type: Error
Event Source: RMS
Event Category: Certification
Event ID: 9
Date: XX/XX/XXXX
Time: XX:XX:XX PM
User: N/A
Computer: XXXXXX
Description: A general error occurred. The following information was reported: System.Data.SqlClient.SqlException: The data type of substitution parameter 1 does not match the expected type of the format specification.
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Microsoft.DigitalRightsManagement.Certification.CertificationGen._GetUser(Identification identification)
at Microsoft.DigitalRightsManagement.Certification.CertificationGen._GetUserKeysAndCertificateWithQuota(String userName, Identification identification, DateTime passportAccountCreation, Byte[] machinePublicKeyHash, Boolean persistent,RsaKeyBlob& userKeys, PersonaCertificate& certificate, QuotaResponse& quota)
at Microsoft.DigitalRightsManagement.Certification.CertificationGen.Certify(String userName, Identification identification, String machineCertificate, DateTime passportAccountCreation, Boolean persistent)
at Microsoft.DigitalRightsManagement.Certification.Pipeline.Certify(CaType caType, CertifyParams[] requestParams, HttpRequest request, IIdentity userIdentity)

CAUSE

This problem occurs because the RMS server uses substitution parameters in the SQL Server sysmessages table entries. However, the data type of some of these parameters is incompatible with the SQL Server 2005 format specification.

WORKAROUND

To work around this problem, update the sysmessages table entries to be compatible with SQL Server 2005. To do this, follow these steps:
  1. Click Start, click All Programs, click Microsoft SQL Server 2005, and then click SQL Server Management Studio.
  2. In the Connect to Server dialog box, verify the default settings that are listed in the following table, and then click Connect.
    Server typeDatabase Engine
    Server nameComputerName
    AuthenticationWindows Authentication
    Note ComputerName is the name of the computer that is running SQL Server.
  3. In SQL Server Management Studio, click New Query on the toolbar.
  4. In the database list on the toolbar, click the master database.
  5. In the query editor, paste the following script:
    exec sp_addmessage 60000, 5, 'Unexpected activation error', 'us_english', false, 'REPLACE'
    exec sp_addmessage 60001, 5, 'Bad parameter %s in procedure %s', 'us_english', false, 'REPLACE'
    exec sp_addmessage 60002, 5, 'User %s not found', 'us_english', false, 'REPLACE'
    exec sp_addmessage 60003, 5, 'Machine quota, %d, for user %d exceeded', 'us_english', false, 'REPLACE'
    
  6. On the toolbar, click ! Execute. Verify that the query executed successfully.

Modification Type:MajorLast Reviewed:2/23/2006
Keywords:kberrmsg kbQFE kbtshoot kbprb KB913372 kbAudDeveloper kbAudITPRO