我最近改變了一些AJAX查詢使用ashx文件而不是aspx,發現Response.End
已不再流行。在我現在看的情況下,採購訂單的提交由ashx處理。用戶單擊PO上的Submit按鈕,ashx文件將時間和用戶記錄在數據庫表中。包含當前用戶數據(包括其主鍵)的對象存儲在會話中,並由定製配置文件提供程序記錄在該對象中。爲了能夠訪問會話,我添加了IReadOnlySessionState
,但似乎除非訪問另一個.net頁面,否則配置文件提供程序不會運行,並且會話中沒有值。 (通過代碼驗證)如何從ashx文件實例化配置文件?
我試過IRequiresSessionState
,但結果相同。
我假設System.Web.UI.Page
HttpHandler實例化自定義配置文件,如果它還沒有,並且我需要將它添加到我的自定義HttpHandler。
我簡短地看了一下HttpModules,但我不認爲這是我想要的,因爲它們會爲每個請求加載。
你是說你正在使用自定義配置文件提供程序嗎?該提供商是否將數據放入Session?這似乎是一個rube-goldberg機器。 – JJS
@JJS - 是的,是的。你說像Rube Goldberg機器不酷,大聲笑。我在10年前從一個經典的asp網站的一個端口寫了它。我懷疑我是這麼做的,因爲Profile似乎是放置這些信息的地方,asp應用程序使用Session來存儲配置文件信息。回想起來,我可能應該使用配置文件自定義屬性,或者可能作爲訪問會話的自定義配置文件的功能。其中任何一個都可以解決在訪問會話之前實例化Profile對象的問題。 –
Rube Goldberg機器在工作時非常酷,但它們很難維持。如果我們知道十年前的時候,我們會以不同的方式做。後見之明是20/20。 – JJS