ASP中的后台文件复制过程

时间:2009-11-26 04:12:34

标签: asp-classic

我在经典ASP中有一个应用程序。单击按钮,它将文件及其相关文件夹从一个文件夹复制到另一个文件夹,并显示指向目标文件夹的用户的链接。用户可以单击链接并从目标文件夹中获取文件。现在,我面临文件及其相对文件夹大小的问题。我有一些大小超过500MB。因此,复制过程需要很长时间才能使我的应用程序出现Time Out错误。 **是否可以为复制创建一些后台进程?当进程完成时,它应该触发一些事件。 **

干杯

3 个答案:

答案 0 :(得分:1)

这是一个相当蹩脚的解决方案,但仍然是一个解决方案:您可以将Ajax请求发送到单独的ASP脚本来执行复制,并在该脚本上放置一个非常长的超时。完成后,它当然可以通过向用户发送警报或通知来更新调用页面,但这在很大程度上取决于用户是否有足够的耐心来保持浏览器窗口打开。

答案 1 :(得分:1)

我尝试的选项是,

  1. 从Shell执行复制命令,因为ASP页面等待shell命令完成而无效。
  2. 在SQL数据库中创建一个触发器,当新行添加到表中时会触发该触发器,然后复制文件并使用TSQL向用户发送电子邮件。这会影响我的整体数据库性能。
  3. AJAX解决方案也等待进程结束。
  4. 现在我实现的解决方案是,ASP页面只是创建一个请求并向用户显示一条消息,用户将收到一封确认电子邮件,然后我创建了一个小的Windows应用程序,它继续监视ASP页面生成的任何请求,一旦有任何请求进入,它就会开始复制文件,并在最后作为电子邮件发送给用户作为确认。

    此解决方案符合我的要求,如果您有更好,更强大的方案解决方案,请分享。

    干杯。

答案 2 :(得分:1)

我想到了另一个想法。我不确定在IIS服务器上执行此操作的确切方法,但如果我在Linux服务器上运行,我会设置一个cron作业,每隔5分钟左右运行一个Web脚本。该脚本将检查新文件并执行复制。由于复制可能需要5分钟以上,因此您可能需要跟踪XML文件或数据库中的文件。

这将使您免于编写/维护单独的Windows桌面应用程序。