Asp.net调用Word 时,Word进程释放内存的问题

thd2046 2009-03-04 07:02:21
我用Asp.net写了一个操作word的程序,即实现用户通过网络上传word文档到服务器,服务器读取文档内容后把数据存入数据库。为了提高资源的利用率我在Application_Start()事件中创建word互操作对象,在Application_End()事件中关闭该Word对象。我在使用vs2005进行调试时,程序启动的Word进程可以在关闭文档后自动释放资源,所以Word进程占用的内存也就那么大(不会超过30M)。可是我把网站发布到IIS上后,服务器启动的Word进程就不自动释放资源了。所以,服务器每读一次Word文档都会使Word进程占用的内存增多一点,逐渐积累。我调用了 方法,而且我可以保证打开的Word文档都已关闭(我可以通过使用交互式用户而看出来)。请问,为什么调试时Word进程可以释放内存而发布后却就不能了呢?
...全文
417 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysk74787 2009-08-07
  • 打赏
  • 举报
回复
学习下,同样碰到这个问题。
iamthebest100 2009-08-07
  • 打赏
  • 举报
回复
我也碰到过和LZ一样的问题,我觉得和权限有一定的关系,初学,说错了大家包涵
thd2046 2009-03-06
  • 打赏
  • 举报
回复
没人回答,自己顶一下!
thd2046 2009-03-06
  • 打赏
  • 举报
回复
to jiezi316:
垃圾回收我也试过,没有解决问题......
jiezi316 2009-03-05
  • 打赏
  • 举报
回复
可以试下强行垃圾回收。
thd2046 2009-03-05
  • 打赏
  • 举报
回复
这个是不同的处理方法的问题,你采用的是在页面或者是方法中创建Word对象从而启动Word进程,我是出于速度与资源的考虑于是让所有的访问用户共享同一个Word进程,而每个用户在需要的时候由Word进程分配一个线程,从而Word进程采用了常驻内存的方式(有点类似于创建静态的word互操作对象,只是我是在Application_start()事件中创建).
seanzhang 2009-03-04
  • 打赏
  • 举报
回复
.NET技术交流60911340
sanjer 2009-03-04
  • 打赏
  • 举报
回复
我觉得每次每个用户调用word object的时候都会调用一个winword进程,这个可以打开任务管理器的进程中可以看的出来,应该在在页面级上用完一次word object都要释放吧,我也在搞这个,不是很懂,不对的地方见笑!

62,267

社区成员

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

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

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

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