推奨:ASPを使用して、プライベート検索エンジンを構築します多くのインターネット愛好家は、自分のホームページを作成する際に、自分のウェブサイトの機能をより包括的にするために脳を飾ります。ここで、著者はASPを使用して独自の検索エンジンを構築する方法を紹介します。基本的なアイデアは、フォームを使用して、ユーザーが変数で送信した検索キーワードを保存することです。
7.5.1一般的なデバッグ技術第2章では、Response.Writeメソッドとリクエストコレクションを使用する方法を見て、コレクションの内容を表示します。コードがリクエストから値を使用したい場合、最初に行うことは、必要な値が存在することを確認することです。簡単な問題は、<form> WebページのHTMLコントロール名が間違っているか変更されているか、URLに接続されたクエリ文字列を作成するときに間違ったクライアントが表示されることです。
1.さまざまなコレクションの内容を表示します
プログラムがユーザーが提供する値で実行しようとすると、望ましい結果が得られないか、何も得られない場合があります。 request.form(thiscontrol)を使用しても、リクエストオブジェクトのコレクションに存在しない値を参照してもエラーが発生しません(たとえば、フォームにこのコントロールという名前のコントロールがない場合は、空の文字列のみを取得できます。
すべてのリクエストオブジェクトコレクション、セッションおよびアプリケーションオブジェクトのコンテンツ、およびstaticContensコレクションのコンテンツを表示するページを作成すると、server.executeを使用してそれらにアクセスできます。作業を行う必要があるのは、次のプログラムラインをASP Webページに追加して、コレクションのコンテンツ全体を表示することです。もちろん、ファイルがサーバーに保存されている場所によると、対応するパスをファイルに設定する必要があります。
<%server.execute /path_to_file/debug_request.asp%>
これは、リクエスト、セッション、およびアプリケーションコレクションで見つけたい価値が存在し、適切な値を含むことを保証する素晴らしい方法です。対応するファイルは、debug_request.aspという名前のこの本のサンプルファイルの章のサブディレクトリに記載されています。基本的に、第2章のshow_request.asp Webページとshow_application.aspおよびshow_session.asp第3章のWebページの組み合わせですが、HTMLプログラムコードを削除します。それは単にコレクションを繰り返し、現在のページに値を入れます。
このページは、カスタムエラーページインスタンスを実行することで表示できます。この例は、この章の前半で見られました。開くときは、[情報の表示]チェックボックスを表示するか、107章ディレクトリのメインメニューWebページで直接開きます。
2。中間値を表示します
Webページで実行中の状況を表示する2番目の方法は、Webページが実行されたときに変数の値を表示することです。この従来の技術は、エラーがどこから来て、どの変数が機能しているかを大まかに知っている場合、破棄することはできません。ただし、IIS 5.0 Webバッファリング方法の変更により、このテクノロジーを使用することは困難です。
ASPとIISの以前のバージョンでは、ページバッファリングはデフォルトでオフになり、Response.redirectを使用してWebページのリダイレクトを完了したい場合を除き、バッファーをオンにすることをほとんど考えませんでした(Respons.buffer = true)。複数のリクエストに応答すると、バッファリングにより、Webページ間の切り替えの数が減り、IISの効率が向上します。
ただし、実行を停止する実行時エラーが発生すると、IISは自動的にResponse.clearメソッドを呼び出し、Server.Executeを呼び出してカスタムエラーページを読み込んで、Webページに書き込まれる出力は失われます。解決策は、次のプログラムラインを一時的に追加することです。
<%response.buffer = false%>
このプログラム行は、<@language ...>ディレクティブの後にページの上部に配置され、response.writeステートメントによって生成されたデバッグ出力はカスタムエラーページの上部に表示されます。 Webページのデバッグが終了した後、削除することを忘れないでください。
この方法は、プログラムを強制的にエラーポイントを実行し、疑わしい変数値を表示するように役立つ場合があります。 Webページの冒頭の近くにON ERROR Resume Nextステートメントを追加するだけで、ERRオブジェクト(VBScript)にアクセスし、エラー番号、エラーソース、および説明を表示できます。
3.コンポーネント属性値を確認します
使用されるコンポーネントにASPスクリプトコードに設定されたプロパティがあり、セットアップが完了した後、コンポーネントメソッドの前後に呼び出された場合、すべてのプロパティ(または疑わしいプロパティ)を表示することでエラーを追跡できます。メソッドが実行されると、プロパティ値がコンポーネントによって誤って変更されていることがわかります。おそらく意図的であるか、コンポーネントの欠陥のためです。実際のコードを自分でチェックせずに仮定しないでください。
7.5.2マイクロソフトスクリプトデバッガー
実際のタスクを処理するより複雑なアプリケーションを開発する場合、デバッグにはより強力なツールが必要になることがよくあります。 Microsoft Script Debuggerは、クライアントとサーバーで実行されているスクリプトをデバッグできるデバッグツールです。 ActiveX対応のスクリプト言語(VBScriptおよびJScriptを含む)に使用することもでき、Javaアプレット、Java Bean、およびActiveXコンポーネントへのコールをデバッグするためにも使用できます。
このツールを研究する前に、いくつかの問題を簡単に説明してください。前述のように、ASPアプリケーションは2種類のスクリプトで構成されています。1つはクライアントスクリプト、もう1つはサーバースクリプトです。クライアントスクリプトは通常、vbscriptまたはjscriptスクリプトステートメントで構成されています。これは、クライアントに到着し、そこに実行されるときにHTMLページに表示されます。サーバー側のスクリプトは通常、VBScriptまたはJScriptステートメントで構成されています。ブラウザがWebページを要求すると、サーバー側のスクリプトはIISによって実行されます。次の説明では、サーバー側のスクリプトデバッグの方法について説明します。ただし、説明した手法の多くは、クライアントスクリプトのデバッグにも使用できます。
1。サーバー側のデバッグ
サーバー側のスクリプトをデバッグするには、IISを実行しているコンピューターでスクリプトデバッガーを実行しますが、スクリプトデバッガーを使用する前にデバッグを有効にする必要があります。パフォーマンスを最適化するために、ASPベースのアプリケーションはデフォルトでデバッグをオフにします。
生産的なアプリケーション(つまり、アクティブで他の人が使用している公開Webサイト)のデバッグをオンにしないように注意してください。これにより、アプリケーション全体が遅くなり、エラーによりWebページが不定期に実行されるのを停止する可能性があります。
デバッグは、仮想アプリケーションとWebサイト全体でのみ設定できます。デバッグを有効にするには、アプリケーションまたはサイトの[プロパティ]ダイアログボックスを開き、[ホームディレクトリ]タブで[構成]ボタンをクリックし、[アプリケーション構成]ダイアログボックスの[アプリデバッグ]タブで[ASPサーバーサイドスクリプトデバッガーを有効にする]を選択し、以下のアプリケーションをデバッグする準備をします。
注Application構成ダイアログボックスには、クライアントスクリプトのデバッグを可能にするチェックボックスが含まれています。これはIIS 5.0で実装されておらず、ドキュメントでの将来の使用のために予約されているとマークされています。通常の500-100.aspカスタムエラーページが使用できない場合、スクリプトエラーメッセージセクションにテキストが含まれています。
(1)サーバースクリプトの処理
クライアントスクリプトとは異なり、ASPベースのアプリケーションスクリプトはイベント駆動型ではありません。クライアントがサーバーからWebページを要求すると、サーバーはWebページのコンテンツを読み取り、すべてのサーバースクリプト(つまり、<%...%>および<スクリプトrunat = server> </script>セグメントのすべて)と、次のようなHTMLテキストのインラインスクリプトセグメントコンテンツを処理します。
結果のバルブは次のとおりです。
プロセスフローディスプレイボックス図
IISがWebページをロードすると、ASPページのすべてのスクリプトが処理されます。出力がクライアントに送信される前に、ASPおよびスクリプトエンジンは構文とランタイムエラーをキャッチできます(バッファリングをオフにしたり、Response.flushメソッドを呼び出したりしない限り)。
(2)スクリプトデバッガーが提供するヘルプ
スクリプトのデバッグを有効にすると、エラーが発生した場合、サーバー画面上のASPコードのエラーを説明するダイアログボックスを表示できます。 [OK]をクリックしてから、現在のASP Webページの読み取り専用コピーを呼び出します。スクリプトデバッガーが開かれています。エラーに表示される線は、矢印で示されます。
ここでは、ページカウンターオブジェクトメソッドの名前エラーが原因でエラーが発生します。同時に、スクリプトデバッガーはエラーを見つけ、ページの実行を終了しました。ツールバーのボタンは、プログラムを継続したり、シングルステッププログラムを実行したり、ページの実行を終了したりするために使用されます。
ツールバーの右端にあるボタンは、スクリプトデバッガーの即時ウィンドウを開きます。これは、ページとの対話に使用でき、エラーが発生する場所を見つける可能性が非常に高くなります。たとえば、変数値またはコンポーネントプロパティは、クエリまたは設定、内部関数とサブルーチン、カスタム関数とサブルーチン、および作成されたオブジェクトメソッドなどを実行できます。図では、ページカウンターコンポーネントのPageHitメソッドが呼び出され、ヒットプロパティがクエリがQUEREDで、実行中のスクリプトのその時点で値を取得します。
スクリプトデバッガーを公開Webサイトで使用しない理由を理解するには、クライアントからサーバー側のエラーを含むページを開くことができます。この場合、エラーメッセージダイアログがサーバーに表示され、スクリプトデバッガーもサーバーに開かれます。クライアントでは、サーバーで実行されているスクリプトデバッガーが閉じられるまでページはロードされません。
(3)デバッガーを起動して使用します
スクリプトデバッグを有効にした後、仮想アプリケーションのWebページでエラーが発生したときにスクリプトデバッガーが自動的に発生します。
共有:ASPの例:Word Cooperation Gamesの制作これは、ASP、VBScript、JavaScriptで書かれた単語コーディングに関するゲームです。 Win98 OEM2、PWS、およびIE5の下でテスト中に大きな問題は見つかりませんでした。使用方法:方法1:たとえば、3WサービスのディレクトリはC:inetpubwwwootです。