Session_OnStartを見てくれなかったりする?

このQ&Aのポイント
  • セッション開始時にglobal.asa内のSub Session_OnStartでApplication.Contents("AAA")="111"を実行させる。
  • アプリケーションの起動時にSub Session_OnStartもしくはSub Application_OnStartを辿り、global.asaを通ってくれない。
  • ASPファイルからもApplication.Contents("AAA")にアクセスしている。
回答を見る
  • ベストアンサー

Session_OnStartを見てくれなかったりする?

【したいこと】 セッション開始時に global.asa内のSub Session_OnStartでApplication.Contents("AAA")="111"を実行させる。 【起きている現象】 アプリケーションの起動時(ファイルを編集したりした後)にのみ、Sub Session_OnStartもしくは、Sub Application_OnStartを辿る(←これもまちまち)が、 その後、ブラウザを全て閉じても、global.asaを通ってくれない。 Sub Application_OnStart Application.Contents("AAA") = "" Sub End Sub Session_OnStart Application.Lock Application.Contents("AAA") = "aaa" Application.Unlock Sub End こんなかんじです。 ASPファイルからもApplication.Contents("AAA")にアクセスしていると考えてください。 情報が少なくて申し訳ありませんが なにか思い当たることがあればお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • LemonT
  • ベストアンサー率49% (39/79)
回答No.1

はじめまして。 >Sub Application_OnStart >Application.Contents("AAA") = "" >Sub End End Sub >Sub Session_OnStart >Application.Lock >Application.Contents("AAA") = "aaa" >Application.Unlock >Sub End End Sub でOKだと思います。

malaika
質問者

お礼

本当すみません。。だいぶと前のことで 自分もこの問題がどうなったのか忘れてしましました。。 大変失礼しました。

関連するQ&A

  • Global.asaについて

    お世話になります。 今回ASPを使用してアプリケーション開発をしております。 データベースに接続して、データを拾おうと思うのですが、そのデータベースへの宣言などをGlobal.asaでしようと試みている途中で止まってしまいましたので・・・ Global.asaはルートディレクトリにおいてあり、IISでの設定はセッションONになっております。 テスト的に実行するため、 <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart Application("test") = "" End Sub Sub Session_OnStart Application.Lock Application("test") = "ttt" Application.UnLock End Sub </SCRIPT> とGlobal.asaには記述してあります。 ASPには <% Response.Write test %> と記述してありまして、実行しますと「ttt」と表示されません。なにか間違っている部分はあるのでしょうか?

  • ASP VBS global.asa Session_OnStart内

    ASP VBS global.asa Session_OnStart内でサーバーの環境変数取得 教えてください。global.asa内で環境変数って取得できるのでしょうか? 今までglobal.asaファイル内で直接書いていた文言を、環境変数から取得する、 というプログラム修正をしなければならなくなりました。 まず、VBSファイルを作成して、環境変数を取得することはできました。 その内容でそのままglobal.asaに記述すると、おそらく、環境変数が正しく取得できません。 このおそらくというのは、エラーが表示されないのです。 ただ、取得できていないので、その後の処理でエラーとなります。 環境は、 IIS 6 Windows2003server です。 いろいろ調べているのですが、いい回答が見つからず。 そもそも、global.asa内で環境変数を取得できるのかも分からず。 お願いします。

  • oracleを利用できません。(global.asa利用)

    asp + oracle + oo4oをglobal.asaファイルを利用して プログラムを組むことになりまして、ネットでサンプルファイルを見つけまして 実行したところエラーになっていまいます。 サンプルは以下の通りです。 ----global.asa--- 'OO4O用の設定 <OBJECT RUNAT=Server SCOPE=Application ID=OraSession PROGID="OracleInProcServer.XOraSession"> </OBJECT> <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Session_OnStart 'OO4O用の設定(Net*8を使用してOracle8に接続する) Set Session("OraDatabase") = OraSession.DbOpenDatabase("sun151_ora803", "scott/tiger", Clng(3)) Set Session("OraDynaset") = Session("OraDatabase").DbCreateDynaset("select * from emp order by empno", Clng(4)) End Sub Sub Session_OnEnd Set Session("OraDynaset") = Nothing Set Session("OraDatabase") = Nothing End Sub </SCRIPT> ---global.asaここまで--- ---emp_o1.asp--- <%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD> <TITLE>emp_o1.asp</TITLE> </HEAD> <BODY> <% '変数の設定 Dim OraDatabase Dim OraDynaset Dim OraFields Dim fieldNum Dim recNum Set OraDatabase = Session("OraDatabase")   ↑ここでエラーがでます。(line17) Set OraDynaset = Session("OraDynaset") --以下略 ---emp_o1.aspここまで--- エラーとして エラー タイプ Microsoft VBScript 実行時エラー (0x800A01A8) オブジェクトがありません。: '[undefined]' /rhc/emp_o1.asp, line 17 というのが出てしまいます。 VBとoracleの経験はあるのですが、aspは今回初めてです。 しょうもない質問かもしれませんが、どなたかよろしく お願いいたします。

  • Session_OnEndイベントスクリプトが処理されない。。。

    いつもお世話になってます。 今、ログイン数のカウンタ表示をしようとしているのですが、 global.asaの Session_OnStart内でログインカウンタをインクリメント。 Session_OnEnd内でログインカウンタをデクリメントしてます。 ところが、ログインした時は正常にインクリメントされているのですが ログアウトしてもデクリメントされません。 (単なる来訪者カウンタになってます。。。) 閉じるボタンやSession.AbandonをきっかけにSession_OnEndイベントを処理するものだと思っていたのですがうまくいきません。 どなたか良い方法を教えていただけないでしょうか。 よろしくお願いします。

  • セッション

    セッションについて教えて下さい。 指定のID、パスワードでログインしようと思っています。 ソースを記載しますので、お教え下さい。 ID:aaa パスワード:111とします。 [送り側フォーム] <form action="/test2.asp" method="POST" id=form1 name=form1> <input type="text" name="id" value=""><br> <input type="password" name="passwd" value=""> <input type="submit" value="LOGIN" id=submit1 name=submit1> </form> とし、 [受け取り側、認証 test2.asp ] <% If Session("user_test") <> "1" Then Response.Redirect "/test.asp" Response.End() End If %>ここで認証を判断し、認証できなければtest.aspへもどるとし、 Dim id, passwd id = Request.Form("id") passwd = Request.Form("passwd") Session("user_login") = "id" Session("user_login") = "passwd" IF id = "aaa" and passwd = "111" THEN Session("user_test") = 1 Response.Write ("OK") ELSE Response.Write ("ちがうよ") END IF %> ID、パスワードをセッション変数にいれ、各ページで認証すると言う事をやりたいのですが、うまくいきません。 どこがわるいか、お教え下さい。 ※以前にも似たような質問をしているのですが、改善されずお手上げです。

  • ページを一度更新しないとSession値が渡らない。

    ASPで初めてプログラムしています。 A.asp → Err.inc → Err.asp というように、エラーがあったらErr.aspに 遷移するようにしているのですが、 Err.aspで更新ボタンを押さないとSession値が表示されません。 具体的に *** Err.inc *** <% Sub COMM_USER_ERROR(strMsg)   session("ErrMsg") = strMsg   'システムエラー表示   Response.Redirect("Err.asp")   Response.End End Sub %> *** A.asp *** If Request.ServerVariables("REQUEST_METHOD") <> "POST" Then   Call COMM_USER_ERROR("不正なアクセスをしました") End If *** Err.asp *** <HTML>   (中略)   <%=session("ErrMsg")%> どうしたらよいか全くわかりません。 どなたか教えていただけないでしょうか? よろしくお願いいたします。

  • Global.asaについて

    すみません。お世話になります。 クラシックなほうのASPで、webを作りました。 のですが、ログイン管理を軽視してしたため、あとからつけたすことになりました。 で、誰がいつログインして、いつ抜けているのかの記録を取りたいのですが、調べたとことろ、Global.asaというものでできる様子。 Sub Session_OnStart で、 sCoString = "DBQ=" & Server.MapPath("XXX.mdb") & ";"・・・などのDBへの接続先を記述し、rs.AddNew とかで記録!というわけにはいかないのでしょうか? どうしたらこういったことが実現できるのか、教えていただけますでしょうか。もし参考になるサイトなどあれば、ご教授いただけると助かります。

  • ASPでoo4o接続ができません。

    WindowsXPpro(IIS6.0) + Orale9i + ASPで開発をしていますが、 oo4o接続がうまくいかず困っています。 IISとDBサーバは同マシン内の同ドライブ(C)にあり、 現在、やむを得ず、DBサーバにて開発を行っています。 色々調べ、以下のことは全て試してみましたが、 どうしても以下のエラーが出てしまいます。 なお、VB6.0で同じDBにoo4oで接続するサンプルを作って試しましたが、 そちらはうまくいきました。 わかる方、どうかご教授ください。 【試したこと&確認したこと】 ・oo4oはインストールされている ・oip9.dll のレジストリ登録(念のため) ・ora92フォルダに、インターネットゲストアカウントの  読み取り実行&書き込みのアクセス許可を与える  (ちなみにフルコントロール許可を与えてもダメでした) ・SQLNET.oraファイルを以下のように書き換え  SQLNET.AUTHENTICATION_SERVICES= (NONE) 【global.asa】 <OBJECT RUNAT=Server SCOPE=Application ID=OraSession PROGID="OracleInProcServer.XOraSession"> </OBJECT> <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Session_OnStart 'OO4O用の設定(Net*8を使用してOracle8に接続する) Set Session("OraDatabase") = OraSession.DbOpenDatabase ("sun151_ora803", "scott/tiger", Clng(3)) Set Session("OraDynaset") = Session ("OraDatabase").DbCreateDynaset("select * from emp order by empno", Clng(4)) End Sub Sub Session_OnEnd Set Session("OraDynaset") = Nothing Set Session("OraDatabase") = Nothing End Sub </SCRIPT> 【エラー内容】 Microsoft VBScript 実行時エラー (0x800A01FB) 例外が発生しました。: 'OraSession.DbOpenDatabase'

  • セッションが動かない

    セッションがちゃんと動かない。 PHPのセッションがちゃんと動きません。 他のプログラムを同じ環境で動かしたところうまく動きましたので、 コードのほうに問題があると思います。 以下のようなコードを書いています <?php require_once '../function.php'; require_once '../config.php'; if (!($_SESSION['date'])) { session_start(); } connect_db() ?> <div id="comu_confirm"> <?php $now = new DateTime(); $date = $now->format('Y/m/d H:i:s'); $title = $_POST['title']; $contents = $_POST['contents']; if ($_SESSION['date']) { $_SESSION = array(); session_destroy(); }elseif($_POST) { } //test $_SESSION['title'] = $title; $_SESSION['contents'] = $contents; $_SESSION['date'] = $date; まず最初はelseifのほうのプログラムを動かして、session変数に値を入れます。 その後、もう一度このファイルに飛んで、二回目はsession変数が入っているので ifのほうに入って、ifの中の処理をするという形にしたかったのですがif文のほうの処理に行きません。 ちなみに、二回目に見たときはURLの欄にセッションIDは表示されていませんでした。 テストとして <?php require_once '../function.php'; require_once '../config.php'; if (!($_SESSION['date'])) { session_start(); } connect_db() ?> <div id="comu_confirm"> <?php $now = new DateTime(); $date = $now->format('Y/m/d H:i:s'); $title = $_POST['title']; $contents = $_POST['contents']; //test $_SESSION['title'] = $title; $_SESSION['contents'] = $contents; $_SESSION['date'] = $date; if ($_SESSION['date']) { $_SESSION = array(); session_destroy(); }elseif($_POST) { } としてみたところ、if文の処理は動いていました。 なにが悪いのでしょうか? 不足した情報がありましたら開示したいと思いますので教えていただければと思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • Sessionの保持

    いつもお世話になっています。 ASP.NET を勉強しているのですが参考資料が手元になく WEBでいろいろ検索をかけていたのですが該当した記事が見つからず ここで質問させていただきます。 かなり、初歩的な質問だと思うのですが、Sessionの値の保持の仕方がいまいちつかめません。 例えば、 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' ページを初期化するユーザー コードをここに挿入します。 If Not IsPostBack Then Session("test") = 0 End If Response.Write(Session("test")) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Session("test") = Session("test") + 1 End Sub 上記のようにプログラムを組んだとして、ページを表示後に Button1 をクリックしても Session("test") の値が計算されていない場合があります。 つまり、Nothing の状態になっているのです。 かと思えば、次に Button1 をクリックしたら計算されていたり、 はたまた、もう1度 Button1 をクリックしたら Nothing になっていたりします。 ちなみに規則性はありません。 タイムアウトかとも思ったのですが、 デフォルトの20ままで動かしていますし、ページ表示後から Button1 のクリックまで2、3秒でも 不規則な動きをします。 何かIISの設定なのかなぁ?とも思っているのですが、皆目検討がつかずご教授いただけたらと思っています。 よろしくお願いいたします。

専門家に質問してみよう