См. Этот блок (с помощью CreateMutex): UiApp
Кроме того, на этой странице вы можете прочитать о преимуществах и недостатках этой работы с различными методами (mutex, FindWindows, ..). .).
У этого устройства есть решение, позволяющее активировать предыдущий экземпляр приложения при его обнаружении.
С уважением и извините за мой плохой английский.
Нефтали-Герман Эстевес-
Если я правильно понял ваш вопрос, ваше исключение должно быть помечено как «обработанное» в вашем OnException. Попробуйте следующее:
filterContext.ExceptionHandled = true;
В документации MSDN ( http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.onexception.aspx ) указано, что метод OnException «вызывается, когда в действии возникает необработанное исключение»
Таким образом, похоже, что он может сработать только тогда, когда необработанное исключение происходит в методе действия.
Я создал новый контроллер с одним действием Index. . И метод OnException действительно выполняется. Я также попытался выбросить SystemException (), и метод OnException также сработал.
public ActionResult Index ( )
{
throw new NotImplementedException ( );
}
Вы вызываете действие контроллера из модульного теста или через ASP.NET? Если вы вызываете метод непосредственно в тесте, скажем, через NUnit, то OnException не сработает: среда тестирования обработает исключение и превратит его в неудавшийся тест.