Есть ли хороший способ создать повторяющийся импорт для сайта ASP.NET?

StackOverflow https://stackoverflow.com/questions/583648

Вопрос

Сайт, над которым я работаю, работает под управлением Windows Server 2003 и SQL Server 8 (2000?), и ASP.NET 3.5.

Мне нужно запустить какой-нибудь скрипт или приложение для импорта данных из текстового файла FTP в базу данных.На компьютере уже запущен сайт, который использует текущую базу данных.Могу ли я использовать запланированную задачу для надежного запуска какой-либо страницы .aspx, которая будет импортировать данные?Или есть лучший подход?

Как насчет того, чтобы убедиться, что никто другой не может получить доступ к странице, на которой выполняется импорт?Я не хочу, чтобы случайные пользователи запускали импорт!

Заранее спасибо!

P.S.перед тем, как данные будут вставлены, необходимо выполнить некоторую обработку.т. е.поисковые запросы, условные обозначения и т.д., поэтому инструменты базы данных недостаточно надежны (я думаю).Я ненавижу DTS, и я думаю, что SSIS недоступен в этой версии.

Это было полезно?

Решение

DTS и хранимые процедуры в задании.

BCP и хранимые процедуры в задании.

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

Другие советы

Если вы хотите, чтобы приложение C # обрабатывало ваш импорт, я бы предложил приложение Windows (exe) без формы (лучше, чем консольное приложение, потому что при его запуске не появляется никакого пользовательского интерфейса).Запускайте его время от времени (каждую минуту) с помощью запланированной задачи.

Почему бы вам использовать ASP.NET?В зависимости от сложности задания вы можете либо загрузить его непосредственно в базу данных (МАССОВАЯ ЗАГРУЗКА), либо использовать DTS (SQL Server 2000) или SSIS (SQL Server 2005/2008), если требуется более сложная обработка.

вместо этого запустите МАССОВУЮ ВСТАВКУ или bcp для импорта данных, смотрите здесь http://msdn.microsoft.com/en-us/library/aa173839 (SQL.80).aspx

Я повторю здесь мнение других людей - вы же не хотите, чтобы запланированная задача попадала на веб-страницу.SQL Server предоставляет несколько хороших вариантов импорта данных, или вы могли бы просто написать простую программу Windows и запустить ее как запланированную задачу.

Другим вариантом было бы написать службу Windows, которая отслеживает ваш FTP-каталог и выполняет импорт.

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

С другой стороны, если у вас уже есть вся необходимая функциональность, доступная в веб-приложении, запущенном на сервере, то вы, вероятно, могли бы настроить запланированную задачу, которая запускает скрипт (VBScript, JScript), который, в свою очередь, вызывает страницу веб-приложения.

Иметь какую - то безопасность (например,предотвращая, чтобы любой пользователь мог вызвать эту страницу), вы могли бы добавить на страницу некоторый код, который проверяет, была ли страница вызвана с http://localhost.Это, по крайней мере, предотвратило бы вызов страницы с удаленного клиента.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top