2015-04-16 26 views
2

Я пытаюсь сделать переадресацию, у меня есть одноэлементный класс, который является моим классом конфигурации, взял информацию об этом и проехал мой коннекторString, эти данные я сохранил в зашифрованном файле, я я использую session-per-request, а затем перед установкой моей потребности проверить файл конфигурации сеанса, если я не выбрал исключение.Ошибка при перенаправлении страницы из Application_Error

protected void Application_BeginRequest() 
{ 
    if (!Settings.Data.Valid()) 
     throw new SingletonException(); 

    var session = SessionManager.SessionFactory.OpenSession(); 
    if (!session.Transaction.IsActive) 
     session.BeginTransaction(IsolationLevel.ReadCommitted); 

    CurrentSessionContext.Bind(session); 
} 

Если есть, то я должен перенаправить на страницу настроек, которая является одноэлементным классом.

protected void Application_Error(Object sender, EventArgs e) 
{ 
    Exception exc = Server.GetLastError(); 
    while (exc != null) 
    { 
     if (exc.GetType() == typeof(SingletonException)) 
     { 
      Response.Redirect(@"~/Settings/Index"); 
     } 

     exc = exc.InnerException; 
    } 
} 

Однако у меня возникли проблемы с этим перенаправлением, ссылка в браузере меняется, но у меня цикл перенаправления, уже пытался очищая кук и включить опцию для внешних сайтов. enter image description here Может кто-нибудь мне помочь?

ответ

1

просто установить Application_BeginRequest для Донта ничего не делает, когда не действует ,

protected void Application_BeginRequest() 
     { 
      if (!Settings.Data.Valid()) 
       return; 

      var session = SessionManager.SessionFactory.OpenSession(); 
      if (!session.Transaction.IsActive) 
       session.BeginTransaction(IsolationLevel.ReadCommitted); 
      CurrentSessionContext.Bind(session); 
     } 
2

Проблемы заключается в использовании while цикла так, что бесконечный цикл, если exc не null, вы должны использовать if условия здесь:

if(exc != null) 
{ 
    if (exc.GetType() == typeof(SingletonException)) 
    { 
     Response.Redirect(@"~/Settings/Index"); 
    } 

    exc = exc.InnerException; 
} 
+0

То, что, хотя я делаю для того, чтобы получить исключение из-за сильных сторон, причиной первой ошибки является не мой бросок. http://imgur.com/aPOT5pg, я удаляю redirec только для шоу u, и я также попытался сделать это с if. –

 Смежные вопросы

  • Нет связанных вопросов^_^