ASP.NETでないASP。いわゆるレガシーASPについて。「Webサイトのプロパティ」→「構成」→「ASPのサーバー側のデバッグを有効にする」にチェックをつけます。以後、ブラウザでエラーのあるASPにアクセスすると、「デバッグしますか?」というダイアログが出て、選択したデバッガでデバッグできるようになります。#attachref(./IIS_debug.GIF)たまに原因不明でデバッグできないこともあるようです。連携を行うときに、注意すべき点を挙げておきます。[#a23e4882]EXXX-XxxxのASPに出てくるsoXXXという名前の変数は、global.asaで次のようにして宣言しています。</OBJECT>ASPでxxxxxxという変数名で最初にアクセスしたときにIISが自動的にクラスxxx.yyyを作成し、ASPに渡します。SCOPE=Sessionと書いてあるので、そのオブジェクトはセッションが切断されるまで存続し、それ以降ASPから要求があったときは、さっき作ったxxx.yyyのオブジェクトを渡します。-->これをサーバサイドインクルードといいます。これはIISの機能であり、HTMLの仕様ではありません(だからHTMLのコメントの中に含めている)。Apacheにも同じSSIの機能があります。-->という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.UnLock()これだけだとロックかからなかったはずですね。Lockの後にアプリケーション変数にアクセスしにいったときにはじめてロックされたはずです。ダミーのアプリケーション変数を一つつくって、そこに何か適当な値でもいれてみたらいいんじゃないでしょうか。このあたりの動作はASPでも同じように動いていたと思います。}}http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=26090#pre{{Application.Lockここ←ファイル操作Application.UnLock上記「ここ」の所で、アプリケーション変数(ダミーでかまわない)に何か値を代入してやると、結果としてファイルに対しての排他制御ができます。パスが書き込まれるのか疑問に思ったことはないでしょうか?次の記事がその疑問に答えてくれます。自体はけっこう速いようです。秒/回という結果になりました。変えると、1回あたりほとんど0秒で生成できました。[#w172787c]ASPの本体はC:\WINDOWS\system32\inetsrv\asp.dllです。DLLで、次のページに書かれているようにRequest、Server、Responseなどおなじみのクラスを持っています。"区切りで連結されて送られる。"が入っているとき困ってしまう。正しくは次のようにする。レガシーASPでMVCを実現するための軽量フレームワークです。