2015-06-01 51 views
1

我想從asp.net頁面調用ashx處理程序,並從處理程序中檢索xml數據。從asp.net aspx頁面重用相同的會話到ashx處理程序

var url = "http://localhost/Settings/MyHandler.ashx?errors=false"; 

     var request = (HttpWebRequest)WebRequest.Create(url); 
     request.Method = "GET"; 

     using (var response = (HttpWebResponse)request.GetResponse()) 
     { 
      using (var stm = response.GetResponseStream()) 
      { 
       using (var sr = new StreamReader(stm)) 
       { 
        var data= sr.ReadToEnd(); 
       } 
      } 
     } 

現在,由於asp.net創建的每個新的WebRequest會議的性質,我不能夠從asp.net頁面重複使用相同的會話ASHX處理程序。

這兩個文件都來自同一個項目。

我怎樣才能從asp.net重複使用相同的會話到ashx處理程序。

請注意:我已經標記了我的處理程序來實現IRequireSessionState,所以它有會話。我的問題是,aspx頁面和ashx處理程序有兩個不同的會話。每當我調用處理程序它創建一個新的會話。但是相反,我必須在我的處理程序中重用同一個aspx頁面會話,這意味着我必須在頁面的相同請求上下文中執行處理程序。

回答

1

如果指定您的.ashx類使用IRequiresSessionState接口,例如

public class myClass : IHttpHandler, System.Web.SessionState.IRequiresSessionState 

{

}

那麼你應該能夠通過以訪問當前會話值HttpContext.Current.Session

+0

我的處理程序已經實現了IRequireSessionState,不解決我的問題,每當我調用處理程序時,它會創建新的會話 –

相關問題