Автоматизация веб-формы ASP.NET - PullRequest
1 голос
/ 12 августа 2010

У меня есть веб-форма ASP.NET, которая читает файл и записывает некоторые данные в базу данных.Мне нужно запустить этот процесс на плановой основе.

В настоящее время у меня есть запланированное задание, которое вызывает командный файл.Пакетный файл затем открывает Internet Explorer и переходит к URL, и процесс запускается.Есть еще один запланированный пакетный файл, который закрывает Internet Explorer.

Конечно, есть более элегантный способ сделать это.

Ответы [ 3 ]

1 голос
/ 12 августа 2010

Если вы просто извлекаете страницу для запуска процесса, вы можете сделать это с 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)
1 голос
/ 12 августа 2010

Есть ли у вас доступ к изменению веб-сайта?Вероятно, элегантное решение most будет состоять в том, чтобы абстрагировать функциональность веб-формы в ее собственный класс, чтобы веб-форма и веб-служба вызывали ее.Затем создайте клиентское приложение (служба Windows или запланированное консольное приложение ... Я рекомендую последнее, потому что его легче отлаживать и обслуживать с течением времени), которое попадает в веб-службу.Если сайт / сайт все еще можно открыть вручную, если / когда это потребуется.

Если, однако, ответ на мой первый вопрос "нет", я бы предложил запланированное клиентское приложение, которое просто создает веб-запрос и выстреливает.Нужно ли что-то еще делать, кроме загрузки страницы, чтобы начать процесс?

0 голосов
/ 12 августа 2010

Если у вас есть cygwin или wget , вы можете просто запланировать звонок как

wget http://URL/whatever?getparams

. Это просто завершит запрос и закроет сам.Более элегантно, чем пытаться использовать IE, но не так интенсивно, как другие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...