2012-01-09 4 views
0

Я работаю над asp.net 4.0 (веб-формы), и я сталкиваюсь с ошибкой на странице входа при обращении к странице, чтобы проверить учетные данные, и она показывает следующую ошибку.Sys.WebForms.PageRequestManagerServerErrorException В пост. Назад

Sys.WebForms.PageRequestManagerServerErrorException: неизвестная ошибка произошла во время обработки задания на сервере. Код статуса с сервера: 404.

Я хочу рассказать вам людям полный сценарий. потому что я использую server.transer в моем обработчике и используя ввод следующего URL-адреса для доступа к странице входа.

Это моя страница с содержанием .aspx, которая использует главную страницу.


 <asp:TextBox ID="txtEmail" runat="server" Width="200px" AutoCompleteType="None"></asp:TextBox> 
     <asp:TextBox ID="txtPassword" runat="server" TextMode="Password" Width="200px" AutoCompleteType="None"></asp:TextBox> 

     <asp:Button ID="cmdLogin" runat="server" Text="Login" OnClick="cmdLogin_Click" /> 

    </ContentTemplate> 
</asp:UpdatePanel>  

Вот мой обработчик ProcessRequst Метода

public void ProcessRequest(HttpContext context) 
    { 
     string stringRqourl = context.Request.RawUrl; 
     tbl_contactcompanies tblCustomer = null; 

     try 
     {    
      int lastIndex = stringRqourl.ToLower().LastIndexOf("/"); 
      int lenStart = lastIndex - 1; 
      int wordLengeth = stringRqourl.Length - lenStart; 
      string customerCodeName = stringRqourl.Substring(1, stringRqourl.Length - wordLengeth); 
      tblCustomer = CustomerManager.GetCustomerByWebCode(customerCodeName); 
     } 
     catch (Exception) 
     { 
      tblCustomer = null; 
     } 

     if (tblCustomer == null) 
      Redirect404Page(context); 
     else 
     { 
      Dictionary<string, string> paramsdic = new Dictionary<string, string>(); 
      paramsdic.Add(ParameterName.CUSTOMER_ID, tblCustomer.ContactCompanyID.ToString()); 
      paramsdic.Add(ParameterName.IS_ALLOW_WEB_ACCESS, tblCustomer.IsAllowWebAccess.ToString()); 

      //Note it is server.transer which creates the following : 
      // "CorpLogin.aspx?IsAllowWebAcces=1&&CustomerID=123" 
      HttpContext.Current.Server.Transfer(Utils.BuilQueryString("CorpLogin.aspx", paramsdic)); 

     } 

    } 

Вот тот stpes, которые я следую:

Шага 1: в URL я печатаю http://localhost/coprprate123/login, и обработчик клиента прослушивает такой запрос и анализирует идентификатор, например, в моем случае это 123. и server.transfer передает запрос в CorpLogin.aspx, и URL-адрес остается тем же (что я хочу достичь)

Шаг 2:

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

Sys.WebForms.PageRequestManagerServerErrorException: неизвестная ошибка произошла во время обработки задания на сервере. Код статуса с сервера: 404.

Это случается не при возврате почты, когда я удаляю панель обновления. Я застрял с ним и обыскал много в Интернете. Просьба, если кто-то может изучить вопрос

С уважением, Salman.

+0

Вы можете проверить на шаге 2: является нулевым клиентом? В этом случае вы делаете Redirect404Page (контекст) –

+0

Дорогой, у меня есть chcecked, и обработчик не делает никаких проблем, он успешно передает мой запрос на страницу corpLogin.aspx. Проблема начинается с этой страницы. После того, как она получает сообщения назад. Обратите внимание, что я использую server.transfer, а не Response.Redirect. –

ответ

0

У меня была аналогичная проблема с панелью обновления и передачей сервера. Кажется, что панель обновления и Response.Write противоречат друг другу. Попробуйте использовать условное обновление с помощью триггера asp:PostBackTrigger.

Надеюсь, это поможет.

Спасибо,

Ni

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