# ashx 使用 IRequiresSessionState的效能問題 如果ashx需要Session的資訊,但**不需要**改變Session內容,建議再繼承 **System.Web.SessionState.IReadOnlySessionState**。 因為僅使用IRequiresSessionState,會導致Session被鎖定,ashx跑完後,需要一段時間才會釋放Session。 所以多次呼叫繼承IRequiresSessionState的ashx,每個ashx都需要排序處理,處理完後,下一個request也需要等待Session被釋放,導致次Request的情況效能不佳。 > 以下是僅使用IRequiresSessionState的情況, > 同時Request,到最後一個Request處理完已經2秒多 >  > > 以下是加上IReadOnlySessionState的情況, > Request就不會因為Session鎖定而導致無法同時執行。  * StatisticsData.ashx ``` java= <%@ WebHandler Language="C#" Class="StatisticsData" %> public class StatisticsData : IHttpHandler, // 要求使用Session System.Web.SessionState.IRequiresSessionState, // 僅唯讀Session,避免Session Lock System.Web.SessionState.IReadOnlySessionState { public void ProcessRequest(HttpContext context) { } public bool IsReusable { get { return false; } } } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up