台灣最具影響力的-資訊專家社群 - 讓您成為最有價值的IT專業人才
線上人數
2030
 
會員總數:197934
接案會員:6196
文章總數:2320
討論主題:151331
歡迎您免費加入會員
討論區列表 >> ASP.NET >> ASP.NET 2.0 中 ashx 文件不能使用 Session ?

[變換順序]
[我要回覆]
1


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
ASP.NET 2.0 中 ashx 文件不能使用 Session ?
價值 : 30 QP  點閱數:1984 回應數:3

點圖分享到Plurk吧!
樓主

雞翼
初學者
14 24
511 28
以下是 show.aspx.cs 的內容:
protected void Page_Load(object sender, EventArgs e)
{
........
Session["img"] = reader["UserImage"]; // 將圖片放入 Session 中
img.imageUrl = "image.ashx"; // Image 控件
}

以下是 image.ashx 的內容:
public void ProcessRequest(HttpContext context)
{
.......
context.Response.ContentType = "image/gif";
context.Response.BinaryWrite((byte[])context.Session["img"]); // 顯示圖片
}

當執行 show.aspx 時, 無法顯示圖片,
不過將 Session 改成 Application, 顯示就可以顯示.

這個現象很奇怪! 是 .ashx 文件內不支援 Session 嗎?




本篇文章發表於2006-09-18 01:01
VP、EP、QP、HP該如何使用? 免費申請藍色部落
1樓
回應

大頭源 版主
中級顧問
24849 180
13226 4872

捐贈 VP 給 阿源哥哥 檢舉此回應
說一下我的作法:

如果是從資料庫中讀出就不必存入Application or Session再讀出了。
我是用:
image.ashx?id=1的方式,依id讀出record



而Session是否不行,我沒試過,但是我查了另一支程式(用在上傳時預覽圖片)
我是使用Application。(因為所參考的書就這樣寫,所以也沒想說用Session試看看)



本篇文章回覆於2006-09-18 07:19
阿源哥哥的軟體組裝工廠:http://blog.xuite.net/keigen/SoftwareFactory

新書內容簡介:http://blog.xuite.net/keigen/books/27268981

Silverlight 4 和 Ria Service的商業應用程式:http://blog.xuite.net/keigen/SoftwareFactory/33190644
2樓
作者回應

雞翼
初學者
14 24
511 28
檢舉此回應
其實我在實作一個會員系統,每位使用者都可以有屬於自己的 image. 但遇到以下問題:

假若 show.aspx.cs 中打開資料庫求得 ID, 然後傳給 image.ashx.
image.ashx 再打開資料庫依照 ID 顯示一幅圖片, 表面上好像解決了問題.
但這種做法就進行了兩次資料存取的動作,當內容、瀏覽人數較多時,這是一個很大的負擔。

Application 是給所有 Client 端存取的 (假若我沒有錯)
那麼當 A 使用者與 B 使用者同在線,
A 使用者將圖片放入 Application 時,B 使用者內的 Application 值會相等於 A 使用者。
當 B 使用者儲存 Application 時,便會得到 A 使用者的圖片 ?



本篇文章回覆於2006-09-18 07:56
3樓
最有價值解答

大頭源 版主
中級顧問
24849 180
13226 4872

捐贈 VP 給 阿源哥哥 檢舉此回應
可用亂數(或任何保証唯一的字串GUID)產生一個key來當Application之變數名稱。
讀出後再將該Application清空即可。

如下:







本篇文章回覆於2006-09-18 08:25
阿源哥哥的軟體組裝工廠:http://blog.xuite.net/keigen/SoftwareFactory

新書內容簡介:http://blog.xuite.net/keigen/books/27268981

Silverlight 4 和 Ria Service的商業應用程式:http://blog.xuite.net/keigen/SoftwareFactory/33190644
[變換順序]
1
 

回覆
如要回應,請先登入.