服务器的函数不会因为客户端IE关闭而中断执行的。 估计还是你程序的问题。 要catch异常,并且在Finially里面关闭word applicaton。 
注意不止是关闭文档还要关闭applicaton 
Word.Application = new Application () 
... 
Other Code 
.... 
doc.SaveAs2000 (...); // Now use the Quit method to cleanup 
object saveChanges = true; 
app.Quit(ref saveChanges, ref optional, ref optional);

解决方案 »

  1.   

    操作word前释放资源和关闭WORD等进程。
      

  2.   

    谢谢提醒,我还想请教一下,如果在操作WORD(PPT)之前确实检验到WINWORD或POWERPNT进程的存在,如何安全的释放他们?(因为此时只能得到线程Process的实例,没法通过WORD实例的Quit方法正常关闭线程),请大侠明示,是否有别的方法能通过检验到的WINWORD线程得到一个WORDAPP的实例再关闭,或是通过别的方法安全释放这些线程。谢谢!
      

  3.   

    谢谢提醒,我还想请教一下,如果在操作WORD(PPT)之前确实检验到WINWORD或POWERPNT进程的存在,如何安全的释放他们?(因为此时只能得到线程Process的实例,没法通过WORD实例的Quit方法正常关闭线程),请大侠明示,是否有别的方法能通过检验到的WINWORD线程得到一个WORDAPP的实例再关闭,或是还存在通过别的方法安全释放这些线程。谢谢!
      

  4.   

    下面是查找当前打开的WORD的实例并关闭的代码
    环境是VS2008,Word11
    PowerPoint的代码你改一下            Microsoft.Office.Interop.Word.ApplicationClass wordApp = null;
                try
                {
                    //获取当前Word的实例
                    wordApp = System.Runtime.InteropServices.Marshal.GetActiveObject( "Word.Application" ) as Microsoft.Office.Interop.Word.ApplicationClass;
                }
                catch
                {
                }            if ( wordApp != null )
                {
                    //当前有打开的 Word ,关闭
                    object missing = System.Reflection.Missing.Value;   
                    object savechanges = false;         //不保存更改
                    wordApp.Quit( ref savechanges, ref missing, ref missing );
                }
      

  5.   

    用同样的方法获取PowerPoint的实例有点麻烦
    没有搞成功
    你参考一下http://support.microsoft.com/kb/222783/zh-cn
      

  6.   

    谢谢帮忙,我再去研究PPT实例的获取方法,还有个问题,就是执行了PPT实例的QUIT()方法后,POWERPNT进程还是存在,只是CPU占有率一直为0,不过我还是想要彻底关闭PPT的进程,不知道怎么改进?除了Quit()方法,我也尝试了网上说的释放.COM引用和主动调用垃圾收集,貌似进程还是关不掉。有什么好办法?谢谢指教。
      

  7.   

    好像office组件是有这样的问题,我也碰到过