2016-06-16 15 views
1

私はIIS7で実行されているasp.net Webサイトを持っていて、大学の一部のユーザーが突然セッションを失っているという問題が発生しています。これらのすべてのインスタンスに共通していることの1つは、ユーザーのクライアントのURL /ホストアドレスがWebサイトにアクセスしている間にセッションの途中で変更されることです。明確にするために、これは私が自分のページへのアクセスに記録していますものです:クライアントURLの変更時にAsp.net Webサイトが失われる

Request.UserHostAddress.ToString() 

セッション状態は、標準的なasp.netのクッキーを使用して追跡されます。 web.configファイルの該当する行:

<sessionState mode="InProc" timeout="40"/> 

ウェブサイトはフレームを使用していないし、単一のワーカープロセス(すなわち、無ウェブガーデニング)を使用して、単一のサーバー(すなわちないWebファーム)から実行されます。これは、他のユーザーのセッションが同時に開いている間に、単一のユーザーに定期的に発生します。

私は、this article on troubleshooting Session lossとしてサイトに記録されるもののリストにクッキーを追加しました。 2つの質問:

  1. セッションクッキーを削除しているサーバーでも、サーバーが受信していない可能性はありますか?もしそうなら、クッキーのロギングを有効にするとこれが選択されますか?
  2. 関連付けられている前のURLと一致しない場合、IISがCookieを削除する可能性はありますか?

答えて

0

クッキーはセッションおよびその関連付けをドメインに保持します。いくつかのケースでは、ドメインはwww.と前に、そして他の場合には呼び出されないかもしれません - そして、クッキーは失われるので、セッション。それにまたはアウトでクッキーを維持するためにwww.アウトと

<httpCookies domain="domainname.com" .... /> 

としてドメイン名をweb.configファイルにその場所を避けるために

サービスとして実行されるInProcを使用し、セッションをメモリではなくデータベースに保存するため、このサービスは何らかの理由でセッションを切断することが分かっています。これを回避するには、セッションを維持するためにデータベースを使用する必要があります。

他の場合はhttpsからhttpに移動することができます。また、安全のためにクッキーを置いた場合は、再び失われます。

Share session between ashx and aspx

+0

関連それは*彼ら*、すなわちクライアントです... *変化している私たちの*ドメインではありません。彼らはアドレスが変更されたホストを介してシステムにアクセスしています。 – monty

+0

私はこれを明確にするために私の質問を編集しました。 – monty

+0

@montyアドレスが変更された場合、セッションは失われます! – Aristos

関連する問題