У меня есть сайт asp.net, который приближается к выпуску.Сайт посвящен управлению бизнесом.Одна из вещей, которые я делаю, чтобы подготовиться к выпуску, - загрузить целую кучу данных из купленных списков предприятий в нашу базу данных SQL.Для этого я использую очень простой метод: я помещаю файлы .csv в папку на сервере и использую событие Page_Load на временной странице, чтобы выполнить логику, необходимую для обработки данных и помещения их в нашу базу данных..
Это длительный процесс.бизнес-списки разбиты на целую кучу файлов, и у меня на странице настроен сценарий для импорта всех данных из одного файла при каждом обновлении страницы.На файл уходит около 10 минут.
Странная вещь: при обработке этих данных (пока сервер обрабатывает все, до завершения метода page_load) сайт блокируется - другие пользователи не могут получить к нему доступ,и никакие другие страницы на сайте не будут загружаться.Они застряли в фазе «Соединение ...».
Сейчас это не большая проблема, так как сайт только работает в тестовой среде.Однако мне может понадобиться использовать аналогичные сценарии для помещения данных в базу данных, когда сайт работает, и, очевидно, недопустимо иметь доступ ко всем пользователям, заблокированным, когда это происходит.
Я вполне уверен, что это не так.Это не проблема с SQL Server, так как я могу выполнять одновременные запросы во время работы этого процесса, поэтому, возможно, что-то не так с веб-сервером.
Я не могу опубликовать фрагмент кода, потому чтоэто долго наматывается и технический.Однако ничего сложного не происходит: метод считывает данные из файла .csv, обрабатывает их и отправляет HTTP-запрос внешней службе для каждой строки файла, чтобы собрать некоторые более важные данные.Затем все данные вставляются в базу данных SQL.
Насколько я понимаю, веб-серверы не должны блокироваться таким образом.Они должны быть в состоянии одновременно обслуживать страницы для множества пользователей одновременно, даже если одному потоку / пользователю требуется много ресурсов.
Кто-нибудь может подсказать, что может быть?С чего мне начать искать решение?