关于word文件正被使用的问题分析
其实单独执行WORD写和下载的成功概率都是100%,所以我认为之所以出现进程占用的的错误,是因为当WORD写入的内容较多时,操作系统(WINDOWS2000)关闭WORD进程时间要长一些,而.NET下载代码运行很快,马上会要求读取WORD的文档,这时操作系统尚未处理完WORD的进程,因此WORD文档处于收保护状态,因此造成.NET进程和WORD进程的冲突。
实验中,单独执行WORD写入很成功,不会留下WORD进程,写入和下载连续进行就会出错,并留下WORD进程,运行几次,就会留下几个WORD进程,这印证了我上面的一些想法。
至于copine() 的方法可行,是因为ASP.NET第一次的运行很慢(转到其他页面相当于其他页面的第一次运行),这就给操作系统足够的时间关闭WORD进程,所以会成功,失败则是导入WORD的数据太多,致使操作系统关闭WORD进程的时间大于其他页面的第一次运行的时间。
综上所述,WORD写和下载存在冲突的可能,根本原因是WORD进程和ASP进程相互独立,单独依靠操作系统不能作到两个进程的互斥。
实验中,单独执行WORD写入很成功,不会留下WORD进程,写入和下载连续进行就会出错,并留下WORD进程,运行几次,就会留下几个WORD进程,这印证了我上面的一些想法。
至于copine() 的方法可行,是因为ASP.NET第一次的运行很慢(转到其他页面相当于其他页面的第一次运行),这就给操作系统足够的时间关闭WORD进程,所以会成功,失败则是导入WORD的数据太多,致使操作系统关闭WORD进程的时间大于其他页面的第一次运行的时间。
综上所述,WORD写和下载存在冲突的可能,根本原因是WORD进程和ASP进程相互独立,单独依靠操作系统不能作到两个进程的互斥。
浙公网安备 33010602011771号