Share via


Troubleshooting

[The AD RMS SDK leveraging functionality exposed by the client in Msdrm.dll is available for use in Windows Server 2008, Windows Vista, Windows Server 2008 R2, Windows 7, Windows Server 2012, and Windows 8. It may be altered or unavailable in subsequent versions. Instead, use Active Directory Rights Management Services SDK 2.1, which leverages functionality exposed by the client in Msipc.dll.]

Locating the source of errors is difficult in an Active Directory Rights Management (AD RMS) application because the debugging mode is prohibited and because the error may occur on either the client or the server. Most errors occur in two locations: building the application manifest or in the DRMInitEnvironment function.

Manifest Errors

  • Have you included a signed certificate chain that contains your public key when running Genmanifest.exe? Did you include the matching public and private keys in the MCF file entered to Genmanifest.exe?
  • Did you re-create your manifest after compiling the most current version of your application in the MODULELIST block? Is the version in the MODULELIST block indeed the most recent version?
  • If you included NOHASH, did you include a public key file path in the INCLUSION block?

DRMInitEnvironment Errors

  • Many errors in DRMInitEnvironment stem from an incorrect manifest being passed in. It is possible for Genmanifest.exe to create a manifest without failing, but the created manifest may be not valid.
  • Are you in debugging mode, or is any other application accessing Msdrm.dll in debugging mode? Are any kernel debuggers running in any process?

Other Errors

  • Are you using the proper rights account certificate (RAC) (with the correct issuer, user ID, and root) for your task?
  • Are your computer and RAC activated to the same root? If they are not, you may receive E_DRM_INVALID_LICENSE_SIGNATURE. Are the issuance license and end-user license activated to the same root as your computer and RAC?

Debugging an Application

Debugging With the LCP

Debugging Without the LCP