ASP FAQ

ASPのデバッグ Edit

ローカルの IIS で ASP サイトを動かしている場合う、Visual InterDev または Microsoft Script Debugger で ASP のデバッグができます。

「Webサイトのプロパティ」→「構成」→「ASPのサーバー側のデバッグを有効にする」にチェックをつけます。

以後、ブラウザでエラーのあるASPにアクセスすると、「デバッグしますか?」というダイアログが出て、選択したデバッガでデバッグできるようになります。


IIS_debug.GIF

たまに原因不明でデバッグできないこともあるようです。

http://q.hatena.ne.jp/1144037030

ASPでOracleに接続するときの注意点 Edit

ASP で、ORACLE との連携を行うときに、注意すべき点を挙げておきます。

http://www.interq.or.jp/www-user/komurak/iis/oracle/

soXXX(StaticObject)について Edit

EXXX-XxxxのASPに出てくるsoXXXという名前の変数は、global.asaで次のようにして宣言しています。

<OBJECT RUNAT=Server SCOPE=Session ID=xxxxxx PROGID="xxx.yyy">
</OBJECT>

ASPでxxxxxxという変数名で最初にアクセスしたときにIISが自動的にクラスxxx.yyyを作成し、ASPに渡します。

SCOPE=Sessionと書いてあるので、そのオブジェクトはセッションが切断されるまで存続し、

それ以降ASPから要求があったときは、さっき作ったxxx.yyyのオブジェクトを渡します。

参考:

Application StaticObjects コレクション

http://www.microsoft.com/windows/windows2000/ja/advanced/iis/htm/asp/vbob5uem.htm

Application オブジェクト

http://www.microsoft.com/windows/windows2000/ja/advanced/iis/htm/asp/vbob8zw4.htm

サーバサイドインクルード(SSI) Edit

<!-- #Include file="../common/SessionCheck.asp" -->

これをサーバサイドインクルードといいます。

これはIISの機能であり、HTMLの仕様ではありません(だからHTMLのコメントの中に含めている)。

Apacheにも同じSSIの機能があります。



SSIには

<!-- #Include file="header.txt" -->

<!-- #Include virtual="hoge/moge/header.txt" -->

という2種類の方法があり、違いはファイルのパスを絶対パスで指定するか相対パスで指定するかだけです(たぶん)。



注意:

IISはアクセスされたASPをコンパイルしてキャッシュしておく機能があります。

要求されたASPのタイムスタンプと前回アクセスされた時間を比較し、前回からファイルが更新されていないならキャッシュを使います。

しかし、A.aspがB.aspをインクルードしているとして、

  1. A.aspにアクセス(→キャッシュされる)
  2. B.aspを変更
  3. A.aspにアクセス(→A.aspのタイムスタンプは変わっていないのでキャッシュが使われる。B.aspの変更は反映されない!

ということが起こるので注意です。

この場合はA.aspのタイムスタンプを更新する、それでもだめならIISを再起動してみましょう。


    Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes