質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

タイムアウト

タイムアウトはイベント発生から完了までに掛かる経過時間に対する一定の待ち時間を指します。また、特定の時間が経過された場合に発生するイベントを指すこともあります。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

8395閲覧

ASP.NET WebフォームでIISのタイムアウト設定が反映されないのですが・・・

Yamachan777

総合スコア5

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

タイムアウト

タイムアウトはイベント発生から完了までに掛かる経過時間に対する一定の待ち時間を指します。また、特定の時間が経過された場合に発生するイベントを指すこともあります。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2021/09/04 09:29

編集2021/09/06 02:55

ASP.NETのWebフォームでIISのタイムアウトの設定値を変更しても反映されません。
アプリケーション名はTestWeb

環境は次の通りです。
・開発ツール Microsoft Visual Studio Community 2019 Version 16.10.2
・.NET Framework Version 4.8.04084
・IIS Version 21H1(OSビルド 19043.1165)
・使用ブラウザ Chrome
・FORM認証使用

新規プロジェクト作成で認証は「認証なし」で作成したと思います。
ログインフォームで担当コードを入力し、担当マスタから担当者名を読み、その担当者名をSession変数に格納し、その後各フォームのPage_Loadイベント時にSession変数の担当者名が空白(String.Empty)であればログイン画面に戻す処理をしています。

試したこと(その1)
・IISのアプリケーションプール内のTestWebの「詳細設定」のアイドル状態のタイムアウト(分)を120に変更
・IISのサイトツリー下のDefault Web Siteの「セッション状態」-「Cookieの設定」内の「タイムアウト」を120に変更。Default Web Siteの認証は匿名認証が有効になっており、ASP.NET偽装とフォーム認証は無効になっています。
・同様にDefault Web Site下のアプリケーション TestWebの「セッション状態」-「Cookieの設定」内の「タイムアウト」を120に変更。「認証」-「フォーム認証」は有効にしているため、「編集」メニューから認証Cookieのタイムアウト(分)を120に変更。
・TestWeb内のWeb.configの該当部分は下記の通りです。
<system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name="TestWeb.NET" protection="All" timeout="120" />
</authentication>

上記の設定を行った後に念のためにIISのアプリケーションを再起動しました。

試したこと(その2)
検索条件を入力するフォーム、結果フォームのPage_LoadイベントにSession.Timeout = 120 を指定してみました。

ところがTestWebのLogin.aspxからログイン後にデータ検索を行い、放置して25分経過させて検索結果のリンクをクリックするとログイン画面に戻ってしまいます。
データ検索は顧客検索で一覧表示の顧客IDにリンクが張ってあり、クリックすることで詳細画面に遷移します。
他に設定するべき箇所はあるでしょうか?

アドバイスの程よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/09/04 14:11 編集

何を作っているのですか? Web Forms? MVC? Web API? その他? 「ASP.NET Webシステムのタイムアウト」って何ですか? そんなものは無いのですが、ひょっとして認証チケット/クッキーの有効期限切れのことですか? そうだとして、認証システムは何を使っているのですか? VS2019 のテンプレートで認証に「個別のアカウント」を選んでプロジェクトを作ると ASP.NET Identity を利用した認証システムが実装されるはずですが、<authentication mode="Forms"> とかを見るとそうではなさそうだし。 > ASP.NET偽装とフォーム認証は無効になっています。 > 「認証」-「フォーム認証」は有効にしているため、 どういうこと??????  意味が分かりませんけど。
Yamachan777

2021/09/05 01:20

Web Formsです。 現象としてはログイン後20分程経過すると、ログイン後に入ったフォームで検索処理や検索結果の詳細情報を表示しようとリンクをクリックするとログイン画面に戻ってしまいます。 このことからセッションのタイムアウトが関係しているのかと思い、IISの設定を変更した次第です。 新規プロジェクト作成で認証は「認証なし」で作成したと思います。 ログインフォームで担当コードを入力し、担当マスタから担当者名を読み、その担当者名をSession変数に格納し、その後各フォームのPage_Loadイベント時にSession変数の担当者名が空白(String.Empty)であればログイン画面に戻す処理をしています。 >どういうこと??????  意味が分かりませんけど。 上段はIISのツリーのDefault Web Siteの設定で、下段はその配下のTestWebの設定のことです。 自分ではTestWebはフォーム認証だと思っているので関係しているのかと思い、そこの設定値を120に変更したということです。
退会済みユーザー

退会済みユーザー

2021/09/05 01:39

> Web Formsです。 追加情報は質問を編集して追記してください > 新規プロジェクト作成で認証は「認証なし」で作成したと思います。 >ログインフォームで担当コードを入力し、担当マスタから担当者名を読み、その担当者名をSession変数に格納し、その後各フォームのPage_Loadイベント時にSession変数の担当者名が空白(String.Empty)であればログイン画面に戻す処理をしています。 それも追加情報として質問欄を編集して追記してください。 独自に認証を実装したようですが、はっきり言ってやってることがメチャクチャです。質問欄に「FORM認証使用」とか書いてありますが違います。 Visual Studio のテンプレートを使って実装できる ASP.NET Identity か、旧来の Microsoft 標準のフォーム認証を使ってください。あなたの「独自」はあなたにしか分からないので話が通じません。なので、あなたが独自のこだわる限り誰も助けられないと思います。
Yamachan777

2021/09/05 02:48

訂正しました。 認証部分のコードは前任者から引き継いだものをそのまま使っているのですが、今回利用者から再度ログインしなおす頻度が多いのでログイン画面に戻る時間を長くしてほしいと要望があり、IISで簡単に設定できるものだと思って設定変更したのですが、反映されませんでした。 あちこちIISの設定に関する記事を探したのですが、セッションタイムアウトの時間と認証Cookieの時間設定を行えばよいという内容が多く、それに従いましたがうまくいかない状況です。
退会済みユーザー

退会済みユーザー

2021/09/05 03:12

前任者に聞けない事情があるのですか?
Yamachan777

2021/09/05 03:31

聞ければ真っ先にそうするのですが、急逝されてしまったのです。 それでオフィスサーバー系の経験がある私に兼任を依頼されたのですが、Web関係の開発は経験がないため難儀しております。
退会済みユーザー

退会済みユーザー

2021/09/05 03:46 編集

あなたがいろいろいじったところはどこですか? 単純に Session に担当者名があるか否かで判定しているなら、前任者は質問欄に書いてある「試したこと」は一切してないはず。それらはすべてあなたがやったこと?
Yamachan777

2021/09/05 04:17 編集

私が変更したのはIISの設定です。 内容は記事の「試したこと」の通りです。
退会済みユーザー

退会済みユーザー

2021/09/05 04:39

> TestWeb内のWeb.configの該当部分は下記の通りです。 web.config の authentication の設定は前任者が設定したのですか? ASP.NET 標準のフォーム認証と Session はもともと関係ないのですが、その設定で何をしているのですか? もし前任者にしか分からないということですと、赤の他人の第三者には分からないことで、そういう話をここで聞くのは間違っているのでは?
Yamachan777

2021/09/05 04:48

web.config も変更していません。 前任者しかわからないことなのかそれは私にもわかりません。そのためにこの場所で質問したのです。 それが間違いだということであればこの質問は取り消します。 私はただIISで設定した内容が反映されないのでそのような経験があるかたがいれば、何等か手掛かりがつかめるのかもという可能性を感じて質問した次第です。
退会済みユーザー

退会済みユーザー

2021/09/06 03:27

ASP.NET 標準の認証システムとは違うものを独自実装したということであれば、独自部分など第三者は知る由もないのは分かりますよね。第三者に何がどうなっているか理解してもらう努力をしてください。現時点で一番肝心な情報は、前のコメントで聞いた、 ASP.NET 標準のフォーム認証と Session はもともと関係ないのですが、その設定で何をしているのですか? ・・・です。想像でテキトーに答えると、想像が間違っていた場合に余計な混乱を招いて話が発散するばかりということになりかねないので聞いてます。真摯に調査して答えてください。
guest

回答1

0

自己解決

解決できました。
あきらめずにあちこちググったところ私と同じような症状が書かれたサイトがありました。

https://blog.goo.ne.jp/greenracoon/e/b8f62f2c640e3cdd143aa67cb60be5b5

ここの設定はほとんど私が試したこと(その1)にある内容と同じ様でしたが、再度IISのアプリケーションプールから作成し直し再度設定を行いました。

・IISのアプリケーションプール内のTestWebの「詳細設定」のアイドル状態のタイムアウト(分)を120に変更
・TestWebの「セッション状態」-「Cookieの設定」内の「タイムアウト」を120に変更。「認証」-「フォーム認証」は有効にしているため、「編集」メニューから認証Cookieのタイムアウト(分)を120に変更。

これで1時間放置した後同様の検証を行ったところログイン画面に遷移しませんでした。

一応現象としては解決なのですが、真の原因は不明です。

それと参考サイトと違う点としてはIISのバージョンと「プログラム内では、セッションタイムアウトの時間に関する記述は行なっていない」の部分について、既述の通りプログラムで記述しています。
(ただ記述しても望み通りにはなりませんでした。)
IISのバージョン違いにより参考サイトの原因4[パフォーマンス] タブを選択し、 [アイドル タイムアウト] の囲み内にある[アイドルなワーカー プロセスの解放までの待ち時間] の値を設定する。の箇所はアプリケーションプール内の該当アプリケーションプールの「詳細設定」のアイドル状態のタイムアウト(分)になります。

投稿2021/09/06 06:52

編集2021/09/06 06:54
Yamachan777

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問