- - PR -
SessionID on Windows 2003 Server
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-09-15 15:12
Windows 2003 Server + IIS 6.0 + Visual Studio 2003 (.Net Framework 1.1) で開発を行っていますが、Session変数でページ間の情報を受け渡ししようとして壁にあたっています。
下記のコードを実行したところ毎回SessionID値が異なっている (Buttonクリック時 = PostBack時でさえ) ことが分かりました。このため現在はSession変数での情報受け渡しができません。 このコードはWindows 2000 Server + IIS 5.0では同一SessionIDを取得でき、Session変数の受け渡しも正しくできています。 -- フォーム部分 -- <%@ Page Language="vb" AutoEventWireup="false" Codebehind="rireki.aspx.vb" Inherits="rireki"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body> <form id="Form1" method="post" runat="server"> <asp:Label id="Label1" runat="server"></asp:Label><br> <asp:Button id="Button1" runat="server" Text="Button"></asp:Button><br> <asp:HyperLink id="HyperLink1" runat="server" NavigateUrl="rireki.aspx">Link</asp:HyperLink> </form> </body> </HTML> -- コード部分 -- Public Class rireki Inherits System.Web.UI.Page #Region " Web フォーム デザイナで生成されたコード " <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected WithEvents Button1 As System.Web.UI.WebControls.Button Protected WithEvents HyperLink1 As System.Web.UI.WebControls.HyperLink Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init InitializeComponent() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Label1.Text = "<br>Session ID: " & Session.SessionID End Sub End Class ASP.NET の Web.ConfigのsessionStateタグは次のように記述しています。 <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;uid=sa;pwd=" cookieless="false" timeout="20" /> さらにIISのアプリケーションプールは次のように設定しています。 リサイクルタブ ワーカープロセスのリサイクル 120分 それ以外の項目はチェックオフ パフォーマンスタブ アイドルなワーカープロセスの開放までの待ち時間 20分 カーネル内要求キューを制限する(要求数) 4000 CPU監視を有効にする チェックオフ Webガーデン 最大ワーカープロセス数 1 状態 Pingを有効にする ワーカープロセスをPingする間隔(秒) 30 ラピッドフェール保護を有効にする エラー回数 5 間隔(分) 5 識別 定義済み Network Service Web.config での mode を StateServer に変更してみたり、アプリケーションプールの設定でワーカープロセスのリサイクルを全てチェックオフにしてみましたが、毎回SessionID値が異なる状況は同じです。またIIS5.0プロセス分離モードも設定し試してみましたがまったく状況に変化がありませんでした。 何とかSession変数の機能を使いたいと考えていますが、行き詰まっています。 上記問題について解決策などお持ちの方がおられましたら、お教え願えませんでしょうか。 |
1