web-dev-qa-db-ja.com

クラシックASPをどのようにデバッグしますか?

IIS 7(windows 2008)で提供されている従来のASPサイトをデバッグする必要があります。

これどうやってするの?私はASP.NETでしか働いていません。

27
Ronnie Overby

MSDNのブログ投稿から: http://blogs.msdn.com/mikhailarkhipov/archive/2005/06/24/432308.aspx

ASPデバッグ作業を行う方法は次のとおりです。

  1. サーバー上のデバッグASPを有効にします。(asp拡張子にDEBUG verbも追加しましたが、必要かどうかはわかりません)。
  2. VS 2005では、クラシックASPを開きます。
  3. ブレークポイントを設定します。
  4. ブラウザでページを表示するか、デバッグせずに実行します。
  5. デバッグ|プロセスにアタッチ
  6. X = 86とScriptを公開し、ScriptとしてアタッチするIIS ASP IIS6上のw3wp.exe)を見つけます。

Eddiegrovesのコメントより:

IIS7のステップ#1について-IIS> ASP> Compilation> Debugging Properties> Enable Server-side Debugging

42
Alex Black

私はこれが古いことを知っていますが、何か他のものを探していたので、私は他の人を助けるために返信すると思いました。

Visual Studioを使用して、クラシックASPをデバッグできます。

IISのローカルコピーを実行している場合は、デバッガーをw3wp.exeプロセスに接続するだけで、ブレークポイントを設定したり、監視ウィンドウに変数を追加したりできます。

複数のWebサイトがある場合、それぞれを個別のアプリケーションプールで実行すると便利です。また、[プロセスのアタッチ]ウィンドウで異なるw3wp.exeプロセスを識別できます。

デバッガの種類として「スクリプト」を選択します。 IISExpressを実行している場合、iisexpress.exeプロセスはアタッチするのに適切なプロセスです。

7
LarryBud

有効にするための便利な設定は、サーバーレベルで[〜#〜] asp [〜#〜]> Compilation> Debuggingプロパティ> ブラウザにエラーを送信。それを「True」に設定します。

これは、すべての状況下で適切ではない場合があります(インターネットアクセス可能なサイトなど)。

4
Kenny Evitt

以下を使用して(オンラインのどこかから取得した)ログファイルに書き込みます。 FirefoxまたはChromeで直接Consoleに書き込む方法をお勧めしますが、これは非常にうまく機能します。

注:「タイムスタンプ」は私のカスタム機能です。あなたはおそらくそれが何をするか推測でき、おそらくあなた自身のものを転がすでしょう。 ;-)

function error_log( message )
    dim objFSO, objLog
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objLog = objFSO.OpenTextFile( "ASP_errors.log", 8, true)
    objLog.WriteLine "[" & timestamp & "] VBS Message: " & message
    objLog.close
    set objLog = nothing
    set objFSO = nothing
end function
2
Stephen R

組み込みのクラシックASPデバッグはかなり貧弱です。 Firebug + FirePHPで動作するこのASP includeクラスをまとめました。値(文字列、多次元配列、json.aspで作成されたオブジェクトなど)をfirebugコンソールに記録し、ASPの組み込みコレクションオブジェクトを表示できます(特にAjaxを使用するとデバッグデータを出力できない場合) json応答を壊します。)Ajaxスクリプトのロード時間とエラーは、すばやく表示できるように自動的にログに記録されます。

https://github.com/dmeagor/ClassicASP-FirePHP

MITオープンソースライセンスの下でリリース

2
David Meagor

これは私がそれを理解した方法です:

デバッグポイントをヒットする場所に停止(書き込み停止)を配置します。次に、ブラウザでアプリケーションを実行します。実行が停止すると、Visual Studioでデバッグを実行するように求めるデバッグポップアップが開きます(VSバージョンをインストールする必要があります)。次に、プロセスをアタッチするように求められます。f10、f11を使用して、ステップオーバーを実行できます。addwatchを使用してデータを表示できます。

1
M A P
  1. IISサーバーでサイトをホストします。
  2. IISサーバーでリモートデバッガーを有効にします。( このチュートリアルに従ってください
  3. ソースコードをVisual Studioにインポートします。
  4. here からリモートデバッグツールをインストールします
  5. リモートデバッグツールで、[ツール]-> [オプション]-> [すべてのユーザーの認証なし]を選択します。
  6. Visual Studioに移動し、プロセスw3wp.exeにアタッチします。
  7. プロセス(w3wp.exe)が表示されない場合。ブラウザでウェブサイトのリンクを開き、すべてのユーザーに対して表示を選択すると、プロセスを確認して添付できるようになります。
  8. アプリケーションにデバッガを置くことを忘れないでください:-)
0
hari