2011-02-25 51 views
0

我试图创建一个Web应用程序的自定义HttpModule。在模块中,我正在编写会话变量。这适用于除Ajax ScriptManager之外的页面。当页面加载时,我得到了可怕的'Sys' is undefined。这只发生在ScriptManager的页面上。为了调试问题,我从应用程序中删除了我的HttpModule,并将代码移到了应用程序中的global.asax中。现在,这是唯一的事件方法我有我的Global.asax:ASP.Net自定义的HttpModule

void Application_PreRequestHandlerExecute(object sender, EventArgs e) 
{ 
    HttpApplication application = (HttpApplication)sender; 
    application.Session["aVariable"] = "some value"; 
} 

具有ScriptManager任何页面/母版页抛出一个或多个"'Sys' is undefined"错误。

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 

应用程序是在.NET 3.5。

请帮忙。

回答

0

我以前曾经有过这个问题。有很多原因,但这一个修复了我...

这是我写了关于它的帖子摘录。

最后在仔细检查了一切后,我发现Web配置引用的其中一个处理程序没有扩展映射。这是.axd扩展名。我将它添加到IIS中,但问题仍然存在。再次检查处理程序映射我取消选中“验证文件存在”复选框并重试网页。这一次它工作!

完全交与截图@http://wraithnath.blogspot.com/2010/09/ajax-sys-in-undefined-and-ajax-client.html

希望它有助于

0

谢谢,但验证选项已被选中。
我也注意到,我得到这个错误,唯一的一次是当我尝试写在“的PreRequestHandlerExecute”事件会话变量和下面的标签页上: <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

找到了解决办法。 只需要添加"if (System.Web.HttpContext.Current.Session != null)"

谢谢。