.NETでないASP。いわゆるレガシーASPについて。
関連ページ:IIS VB6.0
ASPのデバッグ 
ローカルの IIS で ASP サイトを動かしている場合う、Visual InterDev または Microsoft Script Debugger で ASP のデバッグができます。
「Webサイトのプロパティ」→「構成」→「ASPのサーバー側のデバッグを有効にする」にチェックをつけます。
以後、ブラウザでエラーのあるASPにアクセスすると、「デバッグしますか?」というダイアログが出て、選択したデバッガでデバッグできるようになります。
たまに原因不明でデバッグできないこともあるようです。
http://q.hatena.ne.jp/1144037030
ASP ページをデバッグするための VBScript クラスまたは JScript オブジェクトを作成する方法 
http://support.microsoft.com/kb/288965/ja
ASPでOracleに接続するときの注意点 
ASP で、ORACLE との連携を行うときに、注意すべき点を挙げておきます。
http://www.interq.or.jp/www-user/komurak/iis/oracle/
soXXX(StaticObject)について 
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) 
<!-- #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をインクルードしているとして、
- A.aspにアクセス(→キャッシュされる)
- B.aspを変更
- A.aspにアクセス(→A.aspのタイムスタンプは変わっていないのでキャッシュが使われる。B.aspの変更は反映されない!)
ということが起こるので注意です。
この場合はA.aspのタイムスタンプを更新する、それでもだめならIISを再起動してみましょう。
Application.Lock 
アプリケーション変数を更新するときは、排他のために必ず Application.Lock を行います。
しかし Application.Lock を呼んだだけではロックされず、次にアプリケーション変数にアクセスしたときにはじめてロックされるという少し奇妙な仕様なので注意。
> Application.Lock()
> <排他したい処理(一意のID発行など)>
> Application.UnLock()
これだけだとロックかからなかったはずですね。
Lockの後にアプリケーション変数にアクセスしにいったときにはじめてロックされたはずです。
なので、ダミーのアプリケーション変数を一つつくって、そこに何か適当な値でもいれてみたらいいんじゃないでしょうか。
このあたりの動作はASPでも同じように動いていたと思います。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=26090
Application.Lock
ここ←
ファイル操作
Application.UnLock
上記「ここ」の所で、アプリケーション変数(ダミーでかまわない)に何か値を代入してやると、結果としてファイルに対しての排他制御ができます。
http://tryasp.winscom.co.jp/wbbs_qa.asp?TBL=W4_ASP_QA&CATE=&MODE=L_PARENT&NO=65590&CTL_DISP=GROUP&CTL_NO=65512
COM(ActiveX)DLLの作り方 
ASP関連(VisualBasic6.0によるActiveX.DLLの利用)
http://www.asahi-net.or.jp/~ef2o-inue/asp/sub12_05.html
ASPからコールするCOMコンポーネント:.knowledge - frog.raindrop.jp
http://frog.raindrop.jp/knowledge/archives/000111.html
Visual Basic DLL プロジェクトのプロパティを構成し、IIS、MTS、または COM+ で実行する方法
http://support.microsoft.com/kb/281630/ja
ActiveX コンポーネントで作成されるレジストリ エントリ 
regsvr32 で DLL を登録したとき、レジストリのどこに DLL のパスが書き込まれるのか
疑問に思ったことはないでしょうか?
次の記事がその疑問に答えてくれます。
ActiveX コンポーネントで作成されるレジストリ エントリ
http://support.microsoft.com/kb/183771/ja
CreateObject の速度 
CreateObject 自体はけっこう速いようです。
次の VBScript を time.vbs として保存して実行すると、
Pentium(R) 4 CPU 3.00GZHz
1.00 GB RAM
の環境で
100回
23秒
0.23 秒/回
という結果になりました。
しかし、CSystemInfo は Initialize の中で ini ファイル読み込みなどもしているので、
純粋に CreateObject だけの時間ではありません。
SysService.CSystemInfo でなく EventService.CSchedule などに変えると、
1回あたりほとんど0秒で生成できました。
Dim a
a = Now()
Dim Count
Count = 100
For i = 1 To Count
Set oSys = CreateObject("SysService.CSystemInfo")
Set oSys = Nothing
Next
Dim b
b = Now()
Dim diff
diff = (b - a) * 24*60*60
MsgBox Count & " 回" & vbNewLine & _
Round(diff, 6) & " 秒" & vbNewLine & _
Round(diff/Count, 6) & " 秒/回"
asp.dll 
ASPの本体はC:\WINDOWS\system32\inetsrv\asp.dllです。
これはCOM DLLで、次のページに書かれているようにRequest、Server、Responseなどおなじみのクラスを持っています。
http://www5a.biglobe.ne.jp/~javajava/ari/00jscript/dll/kaiseki8.html
配列の正しい受けとり方 
1つのformの中に同じnameの要素が複数あると、それらの値が", "区切りで連結されて送られる。
これをASPで受け取るとき、Splitしてしまうとデータそのものの中に", "が入っているとき困ってしまう。
正しくは次のようにする。
Response.Write "t1 の要素は " & Request.Form("t1").Count & "個<br>"
Response.Write "t1=[" & Request.Form("t1") & "]<br>"
For i = 1 To Request.Form("t1").Count
Response.Write "t1(" & i & ")=[" & Request.Form("t1")(i) & "]<br>"
Next
ASPリンク集 
ASP/VBScript講座
入門ページ。
http://www.site-cooler.com/kwl/asp/
ASP のパフォーマンスやスタイルを改善する 28 の方法
http://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/technologies/iis/tips/asptips.mspx#EGE
ASPフレームワーク ぴいたん
レガシーASPでMVCを実現するための軽量フレームワークです。
http://peetan.cre8labs.com/
ASP FAQ
http://tryasp.winscom.co.jp/faq.asp
]]
COMリンク集 
COM総合研究所 - COM研究室
http://www5.plala.or.jp/atata/com/
COM の世界を斬る!
http://pc.2ch.net/tech/kako/981/981823340.html