Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不能';在DCOM配置中找不到Microsoft Word文档_C#_Asp.net_Ms Word_Ms Office_Dcom - Fatal编程技术网

C# 不能';在DCOM配置中找不到Microsoft Word文档

C# 不能';在DCOM配置中找不到Microsoft Word文档,c#,asp.net,ms-word,ms-office,dcom,C#,Asp.net,Ms Word,Ms Office,Dcom,我正在创建一个使用office 2007/2010 automation的简单asp.net网站。。当我在本地机器(窗口7)上的iis 7上发布网站时,有一个例外 Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution faile

我正在创建一个使用office 2007/2010 automation的简单asp.net网站。。当我在本地机器(窗口7)上的iis 7上发布网站时,有一个例外

 Retrieving the COM class factory for component with CLSID 
 {000209FF-0000-0000-C000-000000000046} failed due to the following error: 
 80080005 Server execution failed (Exception from HRESULT: 0x80080005 
 (CO_E_SERVER_EXEC_FAILURE)).
我搜索了此异常,发现我必须在DCOM配置中为office设置一些权限

我已经打开了组件服务并打开了DCOM配置,但是我没有找到Microsoft Word文档,我只找到了office Word 97-2003

谁能告诉我如何解决这个问题。

在这里找到了答案:

如果您正在运行带有32位Office的64位服务器,则查找此DCOM设置时可能会遇到问题。您需要在命令提示符下运行“MMC-32”以启动32位MMC,然后从“文件>添加/删除管理单元”菜单中添加“组件服务”。

是的,office word 97-2003是DCOM文档(相应的应用程序)word 2007或2010的正确名称。别问我为什么

哪里会有麻烦

用户必须有权访问桌面。如果Word是从ASP.NET调用的,则它可能没有此访问权限。因此,在dcomcnfg.exe中显式设置一个帐户。不要使用启动用户(它是一个IIS标识,没有自己的桌面),也不要使用交互用户(只有在某些用户登录时才有效)

在我的解决方案中,我设置了:

  • 我已经创建了一个名为WordUser的新用户(在用户组中)
  • 我已在IIS中创建了具有WordUser权限的新应用程序池;加载用户配置文件必须为true
  • DCOM我已设置为使用WordUser,在“安全”选项卡上,我添加了WordUser的启动和激活权限以及访问权限

也许有另一种方法是可行的,但这应该是可行的。

重复-请注意此处的链接。此解决方案适用于64位Windows 10上的64位Office 2016。说明和步骤都很好。