Word的COM组件调用时多进程问题

iopzxc 2016-12-13 05:31:51
C#写了一个引用Microsoft.Office.Interop.Word.dll程序集调用Word的COM组件生成docx文档的服务,在并发请求下,多个word进程貌似不是独立的,会互相影响导致服务调用失败。


如果是一个一个调用是正常的,如果网站程序同时发起多个请求,调用Word的COM组件时候就出现进程挂起,实际上是已经报错。
实际报错可能是这个错误:
消息筛选器显示应用程序正在使用中。 (异常来自 HRESULT:0x8001010A (RPC_E_SERVERCALL_RETRYLATER))

不知道大家是怎么解决这个问题的。再此求助
...全文
705 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
闭包客 2017-06-30
  • 打赏
  • 举报
回复
引用 5 楼 iopzxc 的回复:
[quote=引用 3 楼 guwei4037 的回复:] 用aspose.words 生成word. https://www.evget.com/article/2014/11/3/21777.html
aspose.words知道,这个是商用收费。暂不考虑。另外调用aspose.words也有一堆问题,不如微软的Word组件转换成功率高啊。[/quote] 的确,微软的组件才是正宗,是最好用的,它就是靠这个让大家掏钱的。
闭包客 2017-06-30
  • 打赏
  • 举报
回复
我碰到过这样的问题,原因只有一个,因为 Office 是收费软件! 如果可以多进程,多线程地调用,那么我就可以做一个 Web 版本的 Office 出来,免费给大家用。 我当时的解决比较囧,我在一台电脑开了多个用户,每个用户可以有一个 Office 进程。
iopzxc 2017-06-29
  • 打赏
  • 举报
回复
引用 3 楼 guwei4037 的回复:
用aspose.words 生成word. https://www.evget.com/article/2014/11/3/21777.html
aspose.words知道,这个是商用收费。暂不考虑。另外调用aspose.words也有一堆问题,不如微软的Word组件转换成功率高啊。
xdashewan 2017-03-13
  • 打赏
  • 举报
回复
word和excel系列不能同时进行操作,但可以使用只读方式打开。如果你程序一定要写word,那么只能自己程序里加锁,同步方式操作
全栈极简 2017-03-13
  • 打赏
  • 举报
回复
iopzxc 2017-03-13
  • 打赏
  • 举报
回复
发现Word的COM组件调用进程是串行。多进程运行会互相影响。真是淡疼
  • 打赏
  • 举报
回复
异步调用,不知道性能上能满足不

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧