我做了一个Asp.net网站,其中包含一个word文档的生成功能,

作者在ASP.NET网站中实现了生成Word文档的功能,使用Microsoft.Office.Interop.Word库。在本地测试正常,部署到服务器后首次使用时出现COMException错误,但几分钟后可正常使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直奔主题了,
我做了一个Asp.net网站,其中包含一个word文档的生成功能,我使用的是office自带的Microsoft.Office.Interop.Word来生成的,本地测试无问题,发布到服务器之后就有问题了。


报错:
System.Web.HttpUnhandledException: 引发类型为“System.Web.HttpUnhandledException”的异常。 ---> System.Runtime.InteropServices.COMException (0x8000401A): 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 8000401a。

服务器系统为Windows Server Enterprise 2007 sp1  ,我也安装了word(Microsoft Office Word 2007)和本机相同。
IIS为IIS 7.

根据网上所说
 1:在服务器上安装office的Word软件. 
2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务" 
3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置" 
4:在"DCOM配置"中找到"Microsoft word 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft word 应用程序属性"对话框 
5:点击"标识"标签,选择"交互式用户" 
6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加 一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限. 
7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限. 
这样,我们便配置好了相应的Word的DCOM权限.

以上是网上的方法,我已试了,并且给Word组件增加了everyone用户的所有权限。

现在的问题是:

现在Word可以生成成功,但是每天第一次点击生成时还是会报此错误,而且接下来几分钟内都会报此错,然而过几分钟后再次点击生成便不再报错了,今天也不会再报错,但第二天又开始报。。。
请遇到过此问题的,或者知道这是怎么回事的朋友帮帮忙!
或者可以告诉我每天第一次(或前几次)生成文档时,与之后生成文档时有何区别,网站运行的身份是不同的吗?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值