C# ASP.NET检索CLSID为{XXXX}的组件的COM类工厂失败,原因如下80005
我正在构建一个ASP.Net站点,用于构建docx文件。我正在尝试使用互操作库将它们转换为PDF。我知道这不是最好或最有效的方法,但这是我现有的方法 我已经在运行我的站点的服务器上安装了Word。在我的开发环境中运行转换文件的站点工作正常(这是我安装了Office的主pc)。服务器已安装Word,但是尝试在服务器上进行转换会在标题中生成错误 由于以下原因,检索CLSID为{XXXX}的组件的COM类工厂失败 在C代码本身中,失败的一行是声明并初始化ApplicationClass的一行C# ASP.NET检索CLSID为{XXXX}的组件的COM类工厂失败,原因如下80005,c#,asp.net,pdf,interop,C#,Asp.net,Pdf,Interop,我正在构建一个ASP.Net站点,用于构建docx文件。我正在尝试使用互操作库将它们转换为PDF。我知道这不是最好或最有效的方法,但这是我现有的方法 我已经在运行我的站点的服务器上安装了Word。在我的开发环境中运行转换文件的站点工作正常(这是我安装了Office的主pc)。服务器已安装Word,但是尝试在服务器上进行转换会在标题中生成错误 由于以下原因,检索CLSID为{XXXX}的组件的COM类工厂失败 在C代码本身中,失败的一行是声明并初始化ApplicationClass的一行 Appl
ApplicationClass l_WA_wordApplication = new ApplicationClass();
我已经研究了一段时间,以下是我迄今为止验证或尝试的修复:
- 站点配置为编译为“任何CPU”
- 服务器没有在DCOM中列出Word。试图在命令提示符下运行“Winword.exe-regserver”会启动Word并提示它未注册。这可能是原因,我们目前正在调查。不过,请记住,我使用相同的转换代码构建了一个在服务器上运行的小型可执行文件,并且工作正常
- 我已授予IIS\u IUSRS用户对实际WinWord.exe文件的访问权限
我知道我在这个问题中可能缺少一些信息,因此如果您对我的设置有任何疑问,请告诉我。您的IIS应用程序池的位与您安装的Word的位匹配吗?也就是说,如果应用程序池设置为运行x64,是否安装了x64 office?Word不支持ASP.Net(任何人都不能在服务会话中单击消息框)。此外,Word是STA,ASP.Net是MTA。服务器上安装的Word版本为32位,安装在64位操作系统上。应用程序池已将“启用32位应用程序”设置为True。至于MTA vs STA,或者Word不支持ASP.Net,我知道这不是最有效的方法,但这是否意味着这是不可能的?您的IIS应用程序池的位与您安装的Word的位匹配吗?也就是说,如果应用程序池设置为运行x64,是否安装了x64 office?Word不支持ASP.Net(任何人都不能在服务会话中单击消息框)。此外,Word是STA,ASP.Net是MTA。服务器上安装的Word版本为32位,安装在64位操作系统上。应用程序池已将“启用32位应用程序”设置为True。至于MTA vs STA,或者Word不支持ASP.Net,我知道这不是最有效的方法,但这是否意味着这是不可能的?