我正在嘗試構建一個解決方案,它將模擬App_Offline.htm進行遠程訪問,但仍允許本地用戶測試該網站。我發現了一些我正在嘗試的各種選項,但最好的一個似乎不適用於我們的ASP.NET(2.0)站點,它依賴於在所有頁面上啓用會話狀態。HttpHandler和會話狀態問題
的HttpHandler的加入到web.config中
<add verb="*" path="*.aspx" type="AppOffline.AppOfflineHandler, AppOffline" />
和上課的時候被調用,它歸結爲:
public void ProcessRequest(HttpContext context)
{
this.context = context;
// offline mode and remote request?
if (!context.Request.IsLocal &&
IsOffline
)
{
context.Response.Clear();
context.Response.Write(AppOffline);
context.Response.End();
}
else
// redirect to the default processing pipe
PageParser.GetCompiledPageInstance(
context.Request.Path,
context.Request.PhysicalPath,
context).ProcessRequest(context);
}
問題出在PageParser.GetCompiledPageInstance。那我現在打我們網站的任何頁面我收到以下錯誤信息:
「當 enableSessionState設置爲true時才能使用會話狀態, 無論是在配置文件或 Page指令。還請 確保 System.Web.SessionStateModule或$ 自定義會話狀態模塊包含在 <配置> \ <的System.Web > \ <的HttpModules>應用程序 配置 節「。
我們所有的會話變量都存儲在SQL中,不確定是否存在這個因素。
我見過其他人有類似的錯誤,他們給出的答案是你需要添加ProcessRequest(上下文)來解決它。
想法,意見,建議?
謝謝。
是的 - 這應該解決它。 – 2010-09-03 16:43:35
*打頭* 公共類AppOfflineHandler:IHttpHandler,IRequiresSessionState 現在工作就像一個魅力,謝謝! – 2010-09-03 20:07:47
不錯的一個,工作就像一個魅力:-) – 2012-10-22 15:56:26