IRequiresSessionStateは機能しません

私は今これと闘ってきました。

私は次のコードで基本的なIHttpHandlerを実装し、セッションは新しくなっています:

namespace ClassLibrary1
{
    public class MyHandler : IHttpHandler, IRequiresSessionState
    {
        public bool IsReusable
        {
            get
            {
                return true;
            }
        }

        public void ProcessRequest(HttpContext context)
        {
            context.Response.Write(context.Session.SessionID + "

あなたが見ることができるように、非常に簡単なコード。 それから私は単にフォルダc: Inetpub wwwroot
Testを作成します。 私はその後、binフォルダを追加し、私のdllをbinフォルダに入れます。

私のweb.configファイルは次のようになります:



      
        
      
    

私はIIS(IIS
7.0)を開き、デフォルトのWebサイトの下にあるTestフォルダを右クリックして、アプリケーションに変換する必要があります。これはそれをサイトにします。

I then go to a browser and i go to http://localhost/Test/

私はこのような何かを得る:     fxnjswtkkzs1silahvpf5xun
    09:48:52.9194609

私がF5キーを押すかページをリフレッシュすると、セッションIDが変わります。 それは起こるはずがありません。

私はこれを理解できません。面白いことに、それは昨日働いたのです。 誰かが助けてください....

ps、firefoxと同じ動作、ie

前もって感謝します

ベストアンサー

GenericHandler だけでなく、単純な ASPX
ページ無制限ページでも、新しい SessionID
/strong>あなたは Session オブジェクトにアクセスします。これを試して:

public void ProcessRequest (HttpContext context) {
    context.Response.ContentType = "text/plain";
    object o = context.Session["counter"];
    if (o == null)
        context.Session["counter"] = 1;
    else
        context.Session["counter"] = ((int) o) + 1;
    context.Response.Write(context.Session.SessionID + "rn");
    context.Response.Write(context.Session["counter"]);
}

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です