хорошо ...
var thread = new Thread(() => {
// your action
});
thread.Start();
но у вас будут проблемы с этим:
- что если импорт в sql завершится неудачно? должен ли быть какой-либо ответ клиенту
- если не получится, как вы гарантируете файл при последующем запросе
- что если приложения закрываются ... этот вновь созданный и запущенный поток будет уничтожен либо
- ...
Не всегда хорошая идея хранить все в sql (особенно в файлах ...). если вы хотите сделать файл доступным для нескольких серверов, почему бы не распространять их по ftp ...?
Я полагаю, что вся ваша концепция немного испорчена (извините, если предположить это), и было бы полезно, если вы уточните и дадите нам больше информации о ваших намерениях!
редактировать:
Могу ли я сделать / я должен делать это
с сервисом windows? если да, то как?
вы можете :) Я советую вам создать простую консольную программу и конвертировать ее с srvany
и sc
. Вы можете получить приблизительный обзор, как здесь (примечание: вставлять пробелы после =
... это глупая ошибка)
термин should
является относительным, потому что вы не ответили на самый важный вопрос
что, если запись сохраняется в базе данных, сообщая потребителю, что файл test.img
должен быть сохранен, но ваша служба не захватила его или еще не преобразовала его?
так что ... дальше
Должен ли я использовать WCF? Если это работает в IIS, у меня будут проблемы с утилизацией aspnet_wp.exe и тайм-аутом моего процесса?
вы, вероятно, могли бы создать WCF-сервис, который получает некоторые двоичные данные и затем сохраняет их в базе данных. этот запрос может быть асинхронным. да. а зачем?
еще раз:
пожалуйста, дайте нам больше информации о вашем рабочем процессе: чего именно вы пытаетесь достичь? какие "условия среды" у вас есть (например, app A опрашивает базу данных и ожидает сохранения файлов-записей, на которые есть ссылки в таблице x) ...
редактирование:
поэтому вы хотите импортировать .csv
-файл. хорошо что все меняет :) 1057 *
но я не советую вам использовать wcf-сервис (там может использоваться : например, wcf-сервис, который имеет метод для вставки одной строки, затем ваша итерация по файл будет реализован в другом приложении ... хотя и не так хорошо).
Я бы предложил следующее:
сначала сделайте все в своем веб-приложении (как вы уже сделали), но лучше используйте какую-то массовую вставку и выполните преобразование / логику в базе данных.
если у вас какое-то узкое место, я бы предложил вам что-то вроде мелкой работы, например:
webapp загрузит файл и вставит строку в таблицу заданий. служба заданий непрерывно опрашивает таблицу / или получает уведомление через wcf через веб-приложение (эй, эй, наконец, какое-то использование WCF в вашем сценарии ... :)), а затем выполняет задание импорта, записывая финиш -примечание к таблице / или установить состояние задания завершено ...
но это немного излишне :) 1069 *