1

我开发了一个 DLL 作为 RMS 服务器和他想以编程方式使用其服务的任何人之间的代理,该 DLL 工作得很好,但是当我想在 .Net Web 服务中使用这个 DLL 时出现问题,它在 DRMInitEnvironment 中给我一个错误并且错误代码0x8004930c与清单违规错误有关。

清单配置如下

自动引导

C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Bin
\\isvtier5appsigningprivkey.dat

模块化列表请求哈希

C:\\Users\\administrator\\Documents\\Visual Studio 2008\\Projects
\\TestWBS\\TestWBS\\bin\\TestWBS.dll

选择 NOHASH

C:\\Users\\administrator\\Documents\\Visual Studio 2008\\Projects\\TestWBS
\\TestWBS\\bin\\RMSPROXY.dll

请求 NOHASH

%SYSTEMROOT%\\system32\\msdrm.dll

政策列表包容性公钥

C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Bin
\\isvtier5appsigningpubkey.dat

排除

笔记

  1. TestWBS.dll 是 Web 服务生成的 DLL
  2. RMSPROXY.dll 是已开发用作代理的 DLL
  3. 我将清单文件作为 base64 编码字符串传递给 RMSPROXY
  4. 我创建了 C# 控制台应用程序来使用 DLL,它工作得很好,C# 应用程序清单如下所示

自动引导

C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Bin
\\isvtier5appsigningprivkey.dat

模块化列表请求哈希

C:\\Users\\administrator\\Documents\\Visual Studio 2008\\Projects
\\testLibcClient\\testLibcClient\\bin\\Debug\\testLibcClient.exe

REQ NOHASH %SYSTEMROOT%\\system32\\msdrm.dll

政策列表包容性公钥

C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Bin
\\isvtier5appsigningpubkey.dat

排除

我知道问题出在清单中,但我不知道是什么以及在哪里。

4

1 回答 1

-1

我发现了解决方案,

  1. 我需要为 w3wp.exe 创建一个清单并对其进行签名,以代表 IIS 工作者
  2. 将 IIS 中的应用程序池标识更改为超级用户,该用户将充当所有受保护文档的 DR
  3. 启用 IIS 模拟并分配与之前相同的标识
于 2014-02-15T22:25:38.013 回答