2010-08-11 61 views
1

我有一個ASP.NET web表單,它讀取一個文件並將一些數據寫入數據庫。我需要按計劃運行此過程。自動化ASP.NET Web表單

目前,我有一個調度批處理文件的計劃任務。該批處理文件然後打開Internet Explorer並導航到該URL並且該流程被觸發。還有另一個計劃的批處理文件關閉Internet Explorer。

當然,有一個更優雅的方式來做到這一點。

+0

基本上你有一個「文件」輸入類型的表單。 – h3xStream 2010-08-11 20:18:45

回答

1

您是否有權更改網站?很可能最好的解決方案是將Web窗體背後的功能抽象爲它自己的類,並使用Web窗體和Web服務調用它。然後創建一個客戶端應用程序(Windows服務或計劃的控制檯應用程序...我建議後者,因爲它更容易調試和維護一段時間)擊中Web服務。該網站仍然可以在需要時手動點擊。

但是,如果我的第一個問題的答案是「否」,那麼我會建議一個預定的客戶端應用程序,只是建立一個web request並將其關閉。除了加載頁面以啓動過程之外,還需要做什麼嗎?

+0

Web服務通常與[binary file]/[ascii with specials]不兼容。你最終會用base64編碼所有的東西。 – h3xStream 2010-08-11 20:25:13

+0

是的,我完全可以控制網站。 – mmcglynn 2010-08-11 20:27:52

+0

@ h3xStream:也許我錯誤地解釋了請求。這聽起來像是在服務器端完成的,Web表單只是「告訴它去」。 – David 2010-08-11 20:33:02

1

如果你只是抓取網頁的啓動過程,你能做到這一點使用PowerShell的,而不是IE:

$webclient = New-Object System.Net.WebClient 
$response = $webclient.DownloadData("http://www.stackoverflow.com/") 

如果您需要確認一些返回值,你可以這樣說:

$encoding = New-Object System.Text.utf8Encoding 
$returnvalue = $encoding.GetString($response) 
0

如果你有cygwinwget,你可以安排就像

wget http://URL/whatever?getparams 
通話10

這隻會完成請求並自行關閉。比嘗試使用IE更優雅,但不像其他人那樣編程密集。