服務器上的文件如何從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