質問編集履歴

3

例外が発生したコードとセッション管理がInProcモードであることを追加しました。

2020/08/21 04:41

投稿

WhiteHorse
WhiteHorse

スコア1

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ASP.NET MVC5を使用してWebシステムを作成しています。質問はセッションタイムアウトの処理方法です。
6
6
 
7
-
7
+ セッション管理はInProcモードです。
8
8
 
9
9
  セッションタイムアウトはデフォルトの20分です。
10
10
 
@@ -86,6 +86,76 @@
86
86
 
87
87
  ```
88
88
 
89
+ ### エラーが発生したコード
90
+
91
+
92
+
93
+ ```
94
+
95
+ public ActionResult RegisterCommon(DateTime displayDay)
96
+
97
+ {
98
+
99
+
100
+
101
+ // 担当を自由に変更できる期間は2週間前まで
102
+
103
+ var timeLimitDay = displayDay.AddDays(-14);
104
+
105
+ // 本日
106
+
107
+ var today = DateTime.Now.ToUniversalTime().AddHours(9).Date;
108
+
109
+ // ユーザのIDを読み取る
110
+
111
+ var membershipId = (string)Session["MEMBERSHIP_ID"];
112
+
113
+ // 代行処理の場合、代行される人のIDを設定
114
+
115
+ if ((String)Session["SUBSTITUTED_ID"] != null)
116
+
117
+ {
118
+
119
+ membershipId = (string)Session["SUBSTITUTED_ID"];
120
+
121
+ }
122
+
123
+ // 事務局か?
124
+
125
+ var isAdministrator = false;
126
+
127
+ if ((bool)Session["ADMINISTRATOR"]) <<<--ここで例外が発生
128
+
129
+ isAdministrator = true;
130
+
131
+
132
+
133
+ // 指定日の担当登録を全て読み取る
134
+
135
+ var tantoItemsInDay = new List<Tanto>();
136
+
137
+ tantoItemsInDay = db.TantoTbl
138
+
139
+ .Where(item => item.Date == displayDay)
140
+
141
+ .ToList();
142
+
143
+
144
+
145
+ ・・・・・・・
146
+
147
+
148
+
149
+ return View("Register", model);
150
+
151
+ }
152
+
153
+
154
+
155
+ ```
156
+
157
+
158
+
89
159
 
90
160
 
91
161
  ### 試したこと

2

stackOverflowに掲載されたコードへのリンクを付けました。

2020/08/21 04:41

投稿

WhiteHorse
WhiteHorse

スコア1

test CHANGED
File without changes
test CHANGED
@@ -96,9 +96,7 @@
96
96
 
97
97
  疑わしいのは、セッションタイムアウト判定アルゴリズムと睨んでいるのですが、ASP.NETにおけるセッションタイムアウト処理の情報が少なく、悩んでいます。
98
98
 
99
- なお、使用しているセッションタイムアウト判定アルゴリズムはstackOverflowに掲載されていたコードを使っています。
100
-
101
- https://stackoverflow.com/questions/42150933/asp-net-sessionid-cookie-behavior-explanation
99
+ なお、使用しているセッションタイムアウト判定アルゴリズムは[stackOverflowに掲載されていたコード](https://stackoverflow.com/questions/42150933/asp-net-sessionid-cookie-behavior-explanation)を使っています。
102
100
 
103
101
 
104
102
 

1

以下を変更しています。(1)ソースコードをバッククオートで囲み、インデントを付けました。(2)参照したコードのURLを記載しました。

2020/08/20 23:51

投稿

WhiteHorse
WhiteHorse

スコア1

test CHANGED
File without changes
test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- public class SessionExpireFilterAttribute :ActionFilterAttribute
35
+ ``` public class SessionExpireFilterAttribute :ActionFilterAttribute
36
36
 
37
37
  {
38
38
 
@@ -84,7 +84,7 @@
84
84
 
85
85
  }
86
86
 
87
-
87
+ ```
88
88
 
89
89
 
90
90
 
@@ -98,7 +98,7 @@
98
98
 
99
99
  なお、使用しているセッションタイムアウト判定アルゴリズムはstackOverflowに掲載されていたコードを使っています。
100
100
 
101
-
101
+ https://stackoverflow.com/questions/42150933/asp-net-sessionid-cookie-behavior-explanation
102
102
 
103
103
 
104
104