LINQ DataContext Параллелизм между 2 приложениями - PullRequest
1 голос
/ 02 марта 2010

У меня есть база данных, к которой обращаются два приложения. Первое - это приложение ASP.NET MVC, которое просто считывает данные из базы данных. Второе - консольное приложение C #, которое читает и пишет в базу данных.

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

Я предполагаю, что происходит то, что DataContext в приложении MVC видит, что данные изменились, и не знает, что делать. Или, по крайней мере, это то, что я думаю, потому что генерируемое исключение System.Web.HttpUnhandledException действительно расплывчато и перехватывается переопределением контроллера OnException.

Я пробовал несколько исправлений, но ни одно из них не помогло:

  1. Перезапуск IIS или всего сервера не помогает.
  2. Переопределение OnActionExecuting в Controller и указание ему создать новый DataContext не работает.
  3. Переопределение OnActionExecuting в Controller и указание ему обновить DataContext не работает. (Хотя я не уверен на 100%, что это не удалось, потому что я сделал это:)

    DataContext.Refresh (System.Data.Linq.RefreshMode.OverwriteCurrentValues, this);

Компилятор пропустил его, поэтому я предположил, что он понял, что я пытался сделать ...

  1. (4) Обертывание каждого ActionResult с помощью оператора using и создание нового DataContext не работает.

Буду признателен за любые предложения о том, как мне это исправить.

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

1 Ответ

0 голосов
/ 02 марта 2010

Проверьте внутреннее исключение. Если внутреннее исключение равно нулю, убедитесь, что вы выполняете команду «throw», а не «throw ex», чтобы трассировка стека не сбрасывалась.

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