我在ASP.Net Web表单2.0中有一个应用程序。
当我单击页面时,页面上有一个链接,应该弹出的窗口没有发生,并且我在控制台中看到以下错误消息:
“ Sys.WebForms.PageRequestManagerServerErrorException:对象引用 没有设置为对象的实例。”
这是HTML :(即使我注释掉了这部分代码也不能解决问题):
var pageReqMgr = Sys.WebForms.PageRequestManager.getInstance();
pageReqMgr.add_endRequest(function() {
RegisterDefaultBehaviour();
});
这是背后的代码:
protected void Page_PreRender(object sender, EventArgs e)
{
ScriptManager sm = new ScriptManager();
try
{
if (this.Page.Master.FindControl("ePINRequestScriptManager") != null)
{
sm = (ScriptManager)this.Page.Master.FindControl("ePINRequestScriptManager");
sm.RegisterPostBackControl(btnSubmitYes);
}
}
catch (Exception ex)
{
Logger.ErrorException(ex.ToString(), ex);
Response.Redirect(URLManager.ErrorUrl, true);
}
finally { sm = null; }
}
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!Page.IsPostBack)
{
BindDropDowns();
RegisterConfirmBoxJS();
}
}
catch (Exception ex)
{
Logger.ErrorException(ex.ToString(), ex);
Response.Redirect(URLManager.ErrorUrl, true);
}
}
这是在我的主页上:
<div>
<cc1:ToolkitScriptManager ID="ePINRequestScriptManager" runat="server" AsyncPostBackTimeout="3000"
EnablePartialRendering="true" LoadScriptsBeforeUI="true">
</cc1:ToolkitScriptManager>
</div>
我尝试通过将母版页中的div更改为以下代码来尝试此处提到的其他解决方案,但是它不起作用:
<div>
<cc1:ToolkitScriptManager ID="ePINRequestScriptManager" runat="server" ScriptMode="Release" AsyncPostBackTimeout="3000"
EnablePartialRendering="false" LoadScriptsBeforeUI="true">
</cc1:ToolkitScriptManager>
</div>
我将应用程序的代码复制到另一台服务器上,并且一切正常,没有任何问题。我比较了两台服务器,但是两台服务器之间的IIS设置没有任何区别。 我该如何解决这个问题?