2016-08-16 13 views
1

私は長時間インターネットを見回しましたが、私が持っているClassic ASPの問題に対する答えは見つかりません。私は、アプリケーションや古典的なASPそのものについての知識がほとんどないため、昔の古典的なASPソリューションをローカルで手に入れるという課題を抱えていました。新しいページに移動すると、従来のASPセッションが失われる

私はデバッグの設定を管理していますが、セッション変数が設定されていますが、新しいページに移動するとセッション変数が消え、sessionidフィールドが増えました。クッキーが設定されていないためです。 Chrome、IE、Firefox、Operaでこれを試したところ、毎回同じ問題が発生します。

私のローカルマシンとライブアプリケーションがホストされているWebサーバーとの間のサーバー設定の違いは、IIS構成を簡単に比較することができないため、特に困難でした。私のローカルマシンにはIIS 7.5がインストールされており、WebサーバーにはIISバージョン6がインストールされています。私は自分のアプリケーションを作成しようとしましたが、ここでセッションはリクエスト間で正しく動作していました。これは、これがIIS構成の問題かアプリケーションの問題であると信じさせています。私は任意のヘルプを大幅にアレックス

+0

_navigating_は、フォームの送信またはリダイレクトを意味しますか? – SearchAndResQ

+0

私は、リンクとフォームのサブミットでリフレッシュを試みましたが、セッションデータが失われてしまいました。 – opswordfish

答えて

0

あなたがセッションをチェックしていることを呼び出すメソッドを作成する必要が

をいただければ幸いSession.Abandonが発生する場所もどこかにブレークポイントを置いており、これらのブレークポイントを

をヒットされていませんあなたのアプリケーションで使用している各ASPページのメソッド。

Sub CheckSession() 
    If Session("LoginID") = "" Then 
     Response.Redirect "../Login.asp" 
    End If 
End Sub 

その後、すべてのASPページにあなたがまたどこASPファイルをインクルードする必要があり、セッションにバインドする必要があるASPページの上部に

Call CheckSession() 

をCheckSession()メソッドを呼び出しますCheckSession()メソッドを宣言しました。

私はSharedPost.aspページを作成し、そこにすべてのメソッドを作成し、それを他のASPページに含めました。

<!--#include file="../Shared/SharedPost.asp" --> 
+0

乾杯 - 私は既にセッションがクリアされていることを知っていますが、最初のインクルードファイルにブレークポイントを設定しています。すべてのページが読み込まれます。 Sessionにウォッチを置くことによって、SessionIdが最後のリクエストと異なるように見えるので、特定の変数が異なっていてもセッション全体がまったく記憶されていないということさえありません。何らかの構成上の問題であると感じました。アプリケーションはIIS内で複雑な構造をしています – opswordfish

0

あなたのアプリケーションの可能性が高いエラーを投げ、および/またはアプリケーションプールをリサイクル、またはリンク/フォーム/ドメインの境界を越えている使用しているリダイレクトされる(x.com x.comに戻し、その後、y.comします)、したがって間違ったドメインでセッションを作成します。

参照:一般的なトラブルシューティングの方法については、https://blogs.msdn.microsoft.com/akshayns/2008/09/29/common-reasons-for-the-session-loss-issue-in-asp-net-applications/を参照してください。

1

ワーカープロセスの数はどのくらいですか?既定では、アプリケーションプールごとに1つのワーカープロセスが存在する必要があります。より多くのワーカープロセスがある場合、セッションもそれらの間で失われる可能性があります。

IISでは、Webサイトを処理するアプリケーションプール内の「ワーカープロセスの最大数」という設定を確認します。