ASP.NET MVC зависает при возврате View () после выполнения некоторых задач веб-запроса / ответа - PullRequest
2 голосов
/ 15 мая 2009

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

Это довольно простой процесс, который имеет следующий рабочий процесс:

  1. Выполнение нескольких веб-запросов данных с использованием веб-API
  2. Разобрать эти данные, чтобы извлечь все, что мне может понадобиться
  3. Если некоторые данные являются новыми и актуальными, сохраните их в БД (используя linq to sql)
  4. (опционально) отправить некоторые данные обратно в API, чтобы он знал, что я только что сделал.

Вот надуманный пример метода:

public ActionResult UpdateSite(string key)
        {
            if(key == KEY)
            {
                log4net.Config.XmlConfigurator.Configure();
                ILog log = LogManager.GetLogger("Default");
                string tUserName = ConfigurationManager.AppSettings["UName"];
                string tPassword = ConfigurationManager.AppSettings["UPassword"];

                ApiService apiSvc = new ApiService(tUserName, tPassword, new InterpreterFactory(),
                                                                    log);
                ControlPanel controller = new ControlPanel(Service, apiSvc, new DefaultAppStatusService(), log);

                CaptureResults results = controller.Capture();
                controller.EnrichData(results, new EnrichmentFactory(log));

                var newData = controller.PersistData(results);
                controller.ReplyWithNewData(newData);
            }
            return View();
        }

Все это, кажется, работает нормально, оно делает свое дело, извлекает необходимые данные из внешнего API, записывает их в базу данных и т.д.

Проблема в том, что при "return View ()" страница не загружается полностью в браузере, а сайт постоянно зависает, заставляя меня перезапустить сервер dev. Все, что есть на странице, - это немного текста.

Я понятия не имею, что происходит. Кто-нибудь еще сталкивался с чем-то подобным? Есть идеи, что бы это могло быть?

1 Ответ

0 голосов
/ 17 мая 2009

Случается ли, что этот процесс изменяет какой-либо файл в папке bin или в любой из ее подпапок? Если это так, то он перезапустит AppPool, и запрос «вылетит» без шансов.

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