2011-02-25 63 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)"

謝謝。