我在.NET核心应用程序中使用Microsoft.Office.Interop.Word
,它在本地正常工作,但在IIS中托管后就不工作了,我得到了以下错误。
处理请求时发生未处理的异常
UnauthorizedAccessException:正在检索的COM类工厂CLSID为{000209FF-0000-0000-C000-000000000046}的组件由于导致以下错误:80070005访问被拒绝。(0x80070005(E_ACCESSDENIED((。System.RuntimeTypeHandle.CreateInstance(RuntimeTypetype,bool publicOnly,bool wrappeExceptions,ref bool canBeCached,refRuntimeMethodHandleInternal ctor,ref bool hasNoDefaultCtor(
如果我将IIS应用程序池标识更改为LocalSystem
,则会出现以下错误。
An unhandled exception occurred while processing the request.
NullReferenceException:对象引用未设置为对象
我尝试了以下组件服务=>DCOMConfig属性为
- 在"常规"选项卡下,"身份验证级别-连接">
- 在"安全"选项卡下,选择"自定义";"启动和激活";节,并添加了具有完全权限的IIS_IUsers
有人能建议我如何解决这个问题吗?
Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务(自动化Microsoft Office应用程序,因为在这种环境中运行Office时,Office可能会表现出不稳定的行为和/或死锁。
大多数服务器端自动化任务都涉及文档创建或编辑。Office2007支持新的OpenXML文件格式,开发人员可以在服务器端创建、编辑、读取和转换文件内容。
您可以使用Office open XML,而不是使用Microsoft.Office.Interop.Word。以下是您可以参考的文档:https://learn.microsoft.com/en-us/早期版本/office/developer/office-2007/bb735940(v=office.12(?重定向自=MSDN