Нужно какое-то направление относительно обслуживания окон - PullRequest
0 голосов
/ 11 июля 2009

Мне нужно сделать следующее, и мне было интересно, могу ли я получить какую-то информацию от вас. Каждую ночь в определенном месте создается файл (на FTP-сервере). Что мне нужно сделать, это загрузить этот файл и импортировать его на удаленный сервер SQL через веб-службы. Мне также нужно иметь возможность повторно запустить процесс импорта (загрузить файл и отправить содержимое на сервер) в любое время вручную. Я полагал, что служба Windows была бы хороша для этого, но я не вижу, как я могу вручную повторно запустить процесс импорта в любое время. Кто-нибудь сделал что-нибудь похожее на это? Если да, то какую технику вы использовали?

Спасибо

Ответы [ 5 ]

4 голосов
/ 11 июля 2009

Служба Windows для этого немного излишня, если, возможно, вы не хотите опрашивать каждые 10 минут или что-то еще для файла. В противном случае вам следует вместо этого использовать запланированное задание.

Если вы пользуетесь службой Windows, вы можете выполнить простую пользовательскую команду , чтобы получить ее для опроса. Remoting, IPC и т. Д. Также будут работать, но они значительно тяжелее.

2 голосов
/ 11 июля 2009

Класс Service Controller может быть полезен для вас. Вы можете использовать его для выполнения команды в запущенной службе из отдельного приложения «Front end».

0 голосов
/ 11 июля 2009

Я согласен, что вы можете сделать это с помощью запланированного задания. Но если вы действительно хотите использовать вместо этого службу Windows, вы можете запустить программу с параметром командной строки, например «MyService.exe -onetime». Затем в функции Main вы можете проверить, был ли включен этот параметр командной строки. Если это так, то вы можете пропустить обычный код и просто запустить импорт.

0 голосов
/ 11 июля 2009

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

0 голосов
/ 11 июля 2009

Вы можете использовать что-то вроде SyncBackSE , чтобы создать профиль для загрузки вашего файла через FTP, а затем запустить событие After для выполнения импорта (вы можете указать, что вы хотите запустить). Это можно поставить по расписанию (запускается с помощью запланированных задач Windows), но вы также можете запустить его вручную (выберите «Профиль», а затем «Выполнить»). На самом деле не требуется никакого программирования, я полагаю, это скорее ответ администратора сервера на ваш вопрос.

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