推奨:IPおよびMACアドレスを取得するためのASP.NETメソッドサーバーのIPアドレスを取得する方法は、次のようにDNSメソッドを使用するのが簡単で実用的です。プライベートvoid buttunip_click(object sender、system.eventargs e){System M.Net.ipaddress = DNS.GETHOSTBYNAME(DNSS(DNS)
7.4.4 IISエラーページの使用
ASPエラー処理プロセスに関連するのは、IISにカスタマイズ可能なエラーページを提供することです。実際、この機能はIIS 4.0にもあります。しかし、新しいASPビルトインオブジェクトAsperrorは使いやすく、より強力な機能を提供します。
第4章では、server.executeとserver.transferメソッドを見ると、カスタマイズされたエラーページの作成方法について既に説明しています。また、Asperrorオブジェクトについて説明して使用しましたが、この方法は特定の制限の対象となります。このセクションでは、カスタマイズされたエラーページとAsperrorオブジェクトを組み合わせて、ASPエラーを処理するより良い方法を作成する方法を紹介します。
VBScriptを使用してAsperrorオブジェクトの内容を確認して、カスタムエラーページを作成できます。エラーコンテンツに関する包括的な情報を含む文字列を作成し、サーバーディスクのログファイルに書き込みます。ただし、Webページを設計して、訪問者にWebページが利用できないことを確認できるようにすることはできません。訪問者は、以前のWebページをリロードするかホームページに戻るかを選択できるようにする必要があります。そうすれば、エラーが発生していることに気付いていません。
VBScriptを使用してこのWebページを作成しますが、使用する機能の一部はJScriptにも適用できます。また、2つのスクリプト言語を変換する方が簡単です。
この章のサンプルファイルおよびこの本のその他の章は、http://www.wrox.comサイトからダウンロードできます。
1.カスタムエラーページの設定
カスタマイズされたエラーページを使用する前に、インターネットサービスマネージャーに対応する設定を作成する必要があります(メソッドの設定については第4章を参照)。サンプルファイルをコンピューターのwwwrootディレクトリにロードし、Chapter07 Subdirectoryの[カスタムエラー]タブで[章のプロパティ]ダイアログボックスを開き、リストをスクロールし、HTTPエラー500:100エントリを選択し、[プロパティの編集]ボタンをクリックし、カスタマイズされたエラーページのURLを入力します。
第07章サブディレクトリのページでASPエラーが発生すると、カスタマイズされたエラーページが開きます。
2.カスタムエラーページを使用します
ブラウザでChapter07ディレクトリを開き、カスタムエラーページを使用するリンクを選択します。このページには、さまざまなタイプのエラーを生成するための一連のボタンが表示されます。構文エラーでページを読み込むマーク付きボタンをクリックします
これにより、syntax_error.aspという簡単なページが読み込まれます。ただし、このページには構文エラーが含まれているため、このページはわかりません。 ASPは、このページのコンパイル/実行を終了し、実行をカスタムエラーページに転送します。このページには、エラーと2つのボタンの詳細が表示されます。これらのボタンは、前のページ(メインメニュー)に戻るか、Webサイトのデフォルトのホームページに戻るために使用されます。
このページでは、サーバーディスクC:/TEMPフォルダーのcustom_error.logという名前のログファイルにエラーレポートを追加します。ファイルエディターで開いて表示できます。ログファイルにはいくつかのエラーが記録されています。
ページにメッセージが表示された場合、ログファイルを書くことができないことを示している場合、iusr_machinename(iusr_computer name)アカウントにC:/TEMPディレクトリにアクセスする許可がないためかもしれません。このページをテストする場合、IUSR_MachinEnameアカウントにこのディレクトリをすべて制御するか、Custom_Error.aspページのプログラムコードを変更する必要があります。
ページにエラーメッセージが表示される唯一の理由は、Cause_Error.aspページで、対応するチェックボックスを選択したためです。このオプションをオフにしてボタンをもう一度クリックすると、エラーの詳細が表示されませんが、エラーメッセージはサーバーディスクのcustom_error.logエラーログファイルに記録されています。
[情報のデバッグ]チェックチェックボックスは、(ログファイルではなく)カスタムエラーページをより多くの情報を提供し、ASPビルトインオブジェクトコレクション値を使用するページをデバッグするのに役立ちます。
この問題については、この章の次のセクションで説明します。また、原因のエラーページに関する他のボタンによって提供される他のタイプのエラー情報についても学ぶことができます。一部のボタンでは、他のボタンよりも多くの情報を提供できることに注意してください。特に、最後のボタンのみがASPエラーコードの値を示します(ASP 0177です)。
(1)エラーページの原因の関数
前述の例と同様に、エラーが原因となるページは同じ手法を使用して、<form>を使用して同じページに値を送信します。次に、ASPプログラム表示ウィンドウの[送信]ボタンをクリックし、コードの対応する部分を実行します。また、ページ上の2つのチェックボックスが選択されているかどうかを確認します。その場合、プログラムは最初に1つまたは2つのセッションレベルの変数を設定して、これを示します。
<%
'エラーとデバッグ情報を表示しているかどうかを確認してください
'セッション変数を設定してカスタムエラーページを取得します
len(request.form(chkshowerror))の場合
セッション(Showerror)=はい
それ以外
セッション(Showerror)=
ifを終了します
len(request.form(chkshowdebug))の場合
セッション(showdebug)= yes
それ以外
セッション(showdebug)=
ifを終了します
...
%>
Server.Transferの使用により、エラーが発生すると、実行中のWebページのASP環境全体がIISによってカスタムエラーページに渡されます。ただし、スクリプト変数の値はカスタムエラーページに渡されないため、セッション変数を使用する必要があります。または、値をカスタムエラーページに渡すために、request.formまたはrequest.queryStringコレクションに値を追加する必要があります。
セッション変数を設定した後、プログラムはクリックされたボタンを表示し続けます。各タイプのエラー(最初のタイプを除く)は、対応するASPコードを実行することによって生成され、最初のタイプのエラーには別のページを呼び出す必要があります。
...
'フォームセクションボタンから送信されたコマンドを探してください
len(request.form(cmdsyntax))の場合
Response.Clear
Response.redirect syntax_error.asp
ifを終了します
len(request.form(cmdparamtype))の場合
intdate =エラー
intday = day(intdate)
ifを終了します
len(request.form(cmdarray))の場合
dim arrthis(3)
arrthis(4)=エラーが発生します
ifを終了します
len(request.form(cmdfile))の場合
objfso = server.createobject(scripting.filesystemobject)を設定します
objtstream = objfso.opentextfile(dos_not_exist.txt)を設定します
ifを終了します
len(request.form(cmdpagecount))の場合
objpagecount = server.createobject(mswc.pagecounter)を設定します
objpagecount.wrongproperty = 10
ifを終了します
len(request.form(cmdobject))の場合
objthis = server.createobject(donot.exist)を設定します
ifを終了します
共有:最終的にASP添字の境界を越える解決策を見つけました昨日、私の映画のウェブサイトは、静的なコンテンツページを生成する際に問題がありました。添え字で線を越えるように促されました。私は以前にそれに出会ったことがなかったので、それが何であるかわからなかったので、オンラインで答えを探しましたが、見つけるのは本当に大変でした。私は多くを見つけましたが、根本的な問題を解決できませんでした。