1

私は ASP.NET 2.0 の初心者です。おそらく、ASP.NET の専門家にとって、これはあまりにも基本的でばかげた問題に聞こえるかもしれません。しかし、これは私に眠れない夜を与えています。

基本的に、マスターページとマスターページのコンテンツプレースホルダー部分を埋めるコンテンツページを備えたシンプルな多言語Webサイトを開発しました。このアプリケーションは、ASP.NET Development Server 2.0で実行するように構成すると、うまく機能します。しかし、IIS Web サーバーで実行するために発行すると、機能しなくなります。:(トレースから、私が使用するセッション変数が保存されておらず、関連するコンテンツページにリダイレクトされていないことがわかりました。

コンテンツは表示されますが、リダイレクトされたページでいくつかの決定を下すセッション変数の値が失われ、例外が発生します。

どこが間違っているのか、アプリケーションを公開するための正確な手順を教えてください。

例: 私のホームページには http://localhost/Onlineupdate/Home.aspx?vers=1.1&lang=fr-FR のような URL があります

上記の URL に基づいて、vers変数とlang変数を削除してセッション変数に保存します。ただし、これらは IIS でホストされると失われます。

4

4 に答える 4

4

セッション データが失われる原因となる可能性があるものは、以下のように十数個あります。

  • IIS の再起動
  • アプリ プールの再起動
    • web.config の変更により
    • \bin ディレクトリ内の何かが変更されたため
    • メモリの上限に達したか、バグが原因でアプリ プールがリセットされました。
    • 他に考えられるいくつかの原因
  • ホストは実際には Web ファームであり、インプロセス メモリを使用しているため、SQL Server セッション状態モードを使用していない限り、1 つのサーバーが別のサーバーにフェールオーバーすると問題が発生します。

特定の状況で何が起こっているのか正確に答えるには十分な情報がありませんので、http ://msdn.microsoft.com/en-us/library/ms178581 から始めて読んでいただきたいと思います。 aspx

編集:はこのブログ記事を見つけました。


以下は必ずしも答えの一部ではありませんが、役立つように追加されています。

可能であれば、私自身の個人的な経験から、SqlServer セッション状態モードを使用することで、失われたセッションの問題を解消することに成功しました。これを実装して以来、セッションの問題はほとんどなくなりました。

于 2012-07-12T18:38:06.823 に答える
0

これがweb.configで最初に発生するのを防ぐには、restartOnExternalChangesをfalseに設定します。これで、web.configで変更を手動で伝播する必要があります(これは、開発者が構成変更の伝播のメカニズムを構築する責任があることを意味します)。

ヒント:これにはファイルウォッチャーを使用して、 web.config(またはweb。appで使用する任意の構成)の変更をリッスンし、監視可能な構成としてラップして、変更されたときに構成を再ロードできるようにします。

お役に立てれば

于 2012-07-12T21:51:06.050 に答える