服务器Word自动化权限(一些答案和一些问题)

时间:2010-10-05 11:00:35

标签: c# asp.net permissions ms-word dcom

我正在尝试使用自动化字来计算word文档中的页数。 到目前为止,我遇到了这些错误:

  1. Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005.

  2. 打开文档时单词卡住了。

  3. 我目前的决议和目前采取的步骤是:

    1. 将注册表项[HKEY_CLASSES_ROOT\AppID\WINWORD.EXE]{A86A40B3-0008-4D41-975C-BB586C7121E3}更改为{00020906-0000-0000-C000-000000000046}

    2. 在DCOM配置DCOMCNFG.EXE中进行了以下更改:

      • 在其appID“{A86A40B3-0008-4D41-975C-BB586C7121E3}”下显示的“Microsoft Word应用程序”中,仅授予用户iusr_<MACHINE_NAME>本地午餐权限,并将“身份”设置为“启动用户” ”

      • 在“Microsoft Office Word 97 - 2003文档”中,有些人也称为“Microsoft Word文档”(可能取决于word版本),我给了iusr和iwam完全启动和访问权限,将身份验证级别设置为“无”,将启动用户设置为我自己的管理员用户。

    3. “2-b”部分中所有3个mod的组合最终使所有这些考验成功并且现在正在发挥作用。 使用我自己的用户进行启动是在打开文档时对单词卡住的响应。 将身份验证设置回默认值会导致错误“1”。 将启动用户设置回“启动用户”会导致错误“2”。

      目前的情况是一切正常,但只有当我的用户登录并在机器上激活时,我不会因为我必须使用我自己的用户而感到激动要登录并且身份验证设置为none。

      我写这个作为一个答案,为那些在我这里努力工作的人们做了很多工作,并希望得到一些答案,我可以提高安全性,即删除启动用户和设置身份验证,而不是全天候登录到生产机器(当站点启动时)。

      开发机器规格:
      Windows XP Pro 32位
      IIS 5.1
      经典ASP网站
      COM + C#对象执行自动化。

1 个答案:

答案 0 :(得分:0)

避免让用户24/7全天候登录的解决方案是在调用Word之前模拟帐户并以编程方式加载用户配置文件(为此帐户需要本地管理员)。

另一个解决方案是构建一个执行相同操作的Windows服务。