我正在尝试做一些非常简单的事情,并得到了我已经尝试了两天的错误。我有一个简单的ASP按钮,从代码背后调用函数(请参见下文)...,并且收到以下错误。但是只有当我将网站上传到Azure时,它才能在模拟时正确运行。

SCRIPT5007: Unable to get property 'PRM_ServerError' of undefined or null reference

MicrosoftAjaxWebForms.js,第5行字符11118

ASP按钮的定义如下,没什么特别的...
<asp:Button  CausesValidation="false" ID="Button1" runat="server" Text="Login" OnClick="radbtn_loginButton_Click" />

后面的代码再次...疯狂的简单...
protected void radbtn_loginButton_Click(object sender, EventArgs args)
{
    try
    {
        string uName;
        string uPass;
        uName=UsernameBox.Value;
        uPass=PasswordBox.Value;
        if(uName=="admin" && uPass=="password")
        {
            Response.Redirect("dsxHome.aspx");
        }
        else
        {
            loginMessage.Text="Login Invalid!";
        }//end if

    }
    catch
    {
        loginMessage.Text="Problem with Login";
    }
 }

消息标签嵌套在AjaxPanel中...并且我正在站点其他页面的其他地方进行其他Ajax调用...但是最简单的方法正在中断....

有什么想法...我知道我错过了一些愚蠢的事情...

麦可

最佳答案

对于感兴趣的人,该错误发生在调用某些服务器端代码但您的更新面板中的ajax调用期间,但是iis应用程序池已被回收(在部署后发生)。

通过将AsyncPostBackError事件处理程序添加到ScriptManager中,可以在代码中处理该错误。

然后,您可以在发生此错误时将用户重定向到某处,或显示一条弹出消息,说明他们的 session 已过期并且现在已刷新,或者适合您的应用程序的任何内容。

更多信息在这里:https://msdn.microsoft.com/en-us/library/bb398934.aspx

希望这可以帮助某人:)

10-06 04:32