Microsoft KB Archive/913372

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

Article ID: 913372

Article Last Modified on 2/23/2006

-

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:  Click Start, click All Programs, click Microsoft SQL Server 2005, and then click SQL Server Management Studio. In the Connect to Server dialog box, verify the default settings that are listed in the following table, and then click Connect.

Note  is the name of the computer that is running SQL Server. In SQL Server Management Studio, click New Query on the toolbar. In the database list on the toolbar, click the master database.  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'  On the toolbar, click '''! Execute'''. Verify that the query executed successfully.</li></ol>

Keywords: kberrmsg kbqfe kbtshoot kbprb KB913372

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.