• The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
#ls2

#contents

[[ASP FAQ>http://tryasp.winscom.co.jp/faq.asp]]~

**ASPのデバッグ [#u2b41f8f]
ローカルの IIS で ASP サイトを動かしている場合う、Visual InterDev または Microsoft Script Debugger で ASP のデバッグができます。~
「Webサイトのプロパティ」→「構成」→「ASPのサーバー側のデバッグを有効にする」にチェックをつけます。~
以後、ブラウザでエラーのあるASPにアクセスすると、「デバッグしますか?」というダイアログが出て、選択したデバッガでデバッグできるようになります。~
~
#attachref(./IIS_debug.GIF)

たまに原因不明でデバッグできないこともあるようです。~
http://q.hatena.ne.jp/1144037030~


**ASP ページをデバッグするための VBScript クラスまたは JScript オブジェクトを作成する方法 [#qfa1b257]
http://support.microsoft.com/kb/288965/ja~
**ASPでOracleに接続するときの注意点 [#w5ad84ce]
ASP で、ORACLE との連携を行うときに、注意すべき点を挙げておきます。 ~
http://www.interq.or.jp/www-user/komurak/iis/oracle/~

**soXXX(StaticObject)について [#a23e4882]
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) [#b7b1c7f5]
 <!-- #Include file="../common/SessionCheck.asp" -->
これをサーバサイドインクルードといいます。~
これはIISの機能であり、HTMLの仕様ではありません(だからHTMLのコメントの中に含めている)。~
Apacheにも同じSSIの機能があります。~
~
SSIには
 <!-- #Include file="header.txt" -->
と
 <!-- #Include virtual="hoge/moge/header.txt" -->
という2種類の方法があり、違いはファイルのパスを絶対パスで指定するか相対パスで指定するかだけです(たぶん)。~
~
&color(Red){注意:};~
IISはアクセスされたASPをコンパイルしてキャッシュしておく機能があります。~
要求されたASPのタイムスタンプと前回アクセスされた時間を比較し、前回からファイルが更新されていないならキャッシュを使います。~
しかし、A.aspがB.aspをインクルードしているとして、
+A.aspにアクセス(→キャッシュされる)
+B.aspを変更
+A.aspにアクセス(→A.aspのタイムスタンプは変わっていないのでキャッシュが使われる。&color(Red){B.aspの変更は反映されない!};)

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


**Application.Lock [#ud70f6f7]
アプリケーション変数を更新するときは、排他のために必ず Application.Lock を行います。~
しかし Application.Lock を呼んだだけではロックされず、次にアプリケーション変数にアクセスしたときにはじめてロックされるという少し奇妙な仕様なので注意。~
#pre{{
> Application.Lock()
>  <排他したい処理(一意のID発行など)>
> Application.UnLock()

これだけだとロックかからなかったはずですね。
Lockの後にアプリケーション変数にアクセスしにいったときにはじめてロックされたはずです。
なので、ダミーのアプリケーション変数を一つつくって、そこに何か適当な値でもいれてみたらいいんじゃないでしょうか。
このあたりの動作はASPでも同じように動いていたと思います。 
}}
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=26090

#pre{{

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の作り方 [#i3981cb9]
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~

**ActiveX コンポーネントで作成されるレジストリ エントリ [#k191ad59]
regsvr32 で DLL を登録したとき、レジストリのどこに DLL のパスが書き込まれるのか~
疑問に思ったことはないでしょうか?~

次の記事がその疑問に答えてくれます。~

ActiveX コンポーネントで作成されるレジストリ エントリ~
http://support.microsoft.com/kb/183771/ja~

**CreateObject の速度 [#dc740d65]
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秒で生成できました。~

#pre{{
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) & " 秒/回" 
}}


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