Sys.WebForms.PageRequestManagerServerErrorException发回

时间:2012-01-09 07:38:34

标签: javascript asp.net

我正在使用asp.net 4.0(网络表单),每当页面回发以验证凭据时,我都会在登录页面上遇到错误,它会显示以下错误。

  

Sys.WebForms.PageRequestManagerServerErrorException:未知错误   处理服务器上的任务时发生。状态代码   从服务器返回的是:404。

我想告诉大家完整的情景。因为我在我的处理程序中使用server.transer并使用输入followin 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));

        }

    }

以下是我遵循的规定:

第1步:  在url中我键入http://localhost/coprprate123/login并且客户处理程序侦听此类请求并解析id,例如在我的情况下它是123.而sever.transfer将请求转移到CorpLogin.aspx并且url保持不变(那是我的想要实现)

第2步:

通过单击登录按钮提供一些无效的凭据,页面回发,并出现以下js错误。

  

Sys.WebForms.PageRequestManagerServerErrorException:未知错误   处理服务器上的任务时发生。状态代码   从服务器返回的是:404。

每当我删除更新面板时,都不会在回发时发生这种情况。我坚持使用它并在互联网上搜索了很多。如果有人可以研究这个问题,那就好了

此致 塞勒曼。

1 个答案:

答案 0 :(得分:0)

我在更新面板和服务器传输方面遇到了类似的问题。看起来Update面板和Response.Write相互矛盾。尝试使用带asp:PostBackTrigger触发器的条件更新。

我希望这会有所帮助。

谢谢,

的Ni