服务器上的文件如何从Web服务器下载文件到另一个IIS服务器如何安排使用ASP.NET网页
如的下载我有很多电影文件,我想在我的网站上主持
电影上传到其他网站,我想抓住他们在我自己的网站。
是否可以安排使用ASP.NET网页异步下载服务器上的文件? 我只有FTP访问网络服务器,因为我使用共享主机。
服务器上的文件如何从Web服务器下载文件到另一个IIS服务器如何安排使用ASP.NET网页
如的下载我有很多电影文件,我想在我的网站上主持
电影上传到其他网站,我想抓住他们在我自己的网站。
是否可以安排使用ASP.NET网页异步下载服务器上的文件? 我只有FTP访问网络服务器,因为我使用共享主机。
如果您使用共享主机,调度任务将会很困难。 您可以实现一个服务页面,在请求时执行下载。此页面将在目标服务器上运行,并从源服务器请求文件列表并继续下载这些文件。服务器执行所有工作,请求服务页面的客户端可以获得服务器正在做什么的简短日志。
接下来在一些其他系统上定期调用服务页面的计划任务。
由于呼叫服务页面的客户端负载非常低,您可以从几乎任何位置(家庭或办公室服务器,智能路由器(dd-wrt),您可以坐在壁橱里甚至某处你的智能手机)。
这种方法的好处在于,您可以通过直接从浏览器访问服务页面,从任何地方手动触发下载。
缺点是,如果完成下载的时间超过了最大请求持续时间,您的请求很可能会被终止。如果发生这种情况,您可能需要查看asynchronous handlers。
您可以连线任务以在每次页面加载或应用程序启动时运行(并定期回收应用程序池),但ASP.NET并非专门为此类任务设计的。
建议一个服务或命令行工具,可以连接到任务计划程序以便每隔一段时间进行一次下载。
你可以做的一件事是利用窗口服务即创建窗口服务和把计时器,将解决您的问题很容易。
这里是不错的文章:Combine Web and Windows Services to Run Your ASP.NET Code at Scheduled Intervals
1)条目添加到队列中的ASP.Net应用程序 - 无论是MSMQ或数据库表。
2)编写一个从队列中读取并处理每个项目的Windows服务/控制台应用程序。
你也可以用SQL中的ScheduledTask来实现(2) - 其他方式也毫无疑问 - 关键是你把队列放在中间来提供断开和异步。
OP已经指定他只能在服务器上访问FTP。 – csano 2011-06-01 07:10:26