2017-02-14 5 views
2

、私はそれがこのように、.Statusプロパティを指定することにより、HTTPエラーヘッダーを戻すことが可能だということを知っている:クラシックASPでHTTPサブコードを使用してHTTPエラーコードを送信するにはどうすればよいですか?クラシックASPで

Response.Status = "404 File Not Found" 

しかし、どのように私はより具体的なエラーコードを返すことができます。サブ状態、例えば404.9または500.100?

(私はサブステータスコードは通常、動的にサーバーによって追加されていることを知っているように)私は、IISがトラフィックログにカスタムサブコードをログに記録しません

+0

あなたはResponse.Status = "404.9ファイル属性hidden"を試しましたか? – Lankymart

+0

[ドキュメント](https://msdn.microsoft.com/en-us/library/ms525844(v = v1).aspx)で判断すると、ステータスコードを示す* 3桁の数字のみが必要です"*、しかし、私のアドバイスはそれを試してみるだろう。 – Lankymart

+0

@Lankymartはい、私はそれをテストしましたが、うまくいかないようです。 エラーを生成する唯一の方法は、ウェブサイトにある "test.yyy"ファイルを呼び出すことです。ファイル拡張子.yyyはIIS MimeMapの一部ではないため、静的ファイルハンドラはそれを提供せず、404.3エラーを返します。こうすることで、カスタムエラーページをテストできます。 – AlexLaforge

答えて

0

So:Classic ASPコードから「3桁の」HTTPエラーを生成することしかできないようです。

カスタムWebページが動作しているかどうかをテストする唯一の方法は、というWebサイトにある "test.yyy"ファイルを呼び出すことです。

ファイル拡張子.yyyはIIS MimeMapの一部ではないため、静的ファイルハンドラはそれを提供せず、404.3エラーを返します。こうすることで、カスタムエラーページをテストできます。 この例は、このマイクロソフトの記事から来ている:https://www.iis.net/learn/troubleshoot/diagnosing-http-errors/how-to-use-http-detailed-errors-in-iis

だから誰もがIIS 7月8日の下でHTTPサブコードを含む、非常に詳細なエラーメッセージを設定する必要のために、ここにあなたのウェブサイトのための「のweb.config」ファイルの内容は次のとおりです。 (このファイルは、わずか数のエントリが含まれていますが、あなたは明らかにあなたが望むすべてのHTTPコード/サブコードの組み合わせのエントリを追加することができ、MicrosoftがCで56エラーページが用意されています。\のinetpub \ custerr)

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <httpErrors errorMode="Custom"> 
      <remove statusCode="404" subStatusCode="-1" /> 
      <error statusCode="404" subStatusCode="5" prefixLanguageFilePath="" path="E:\inetpub\vhosts\yourdomain.com\error_docs\404-5.html" /> 
      <error statusCode="404" subStatusCode="4" prefixLanguageFilePath="" path="E:\inetpub\vhosts\yourdomain.com\error_docs\404-4.html" /> 
      <error statusCode="404" subStatusCode="3" prefixLanguageFilePath="" path="E:\inetpub\vhosts\yourdomain.com\error_docs\404-3.html" /> 
      <error statusCode="404" subStatusCode="2" prefixLanguageFilePath="" path="E:\inetpub\vhosts\yourdomain.com\error_docs\404-2.html" /> 
      <error statusCode="404" subStatusCode="1" prefixLanguageFilePath="" path="E:\inetpub\vhosts\yourdomain.com\error_docs\404-1.html" /> 
      <error statusCode="404" subStatusCode="0" prefixLanguageFilePath="" path="E:\inetpub\vhosts\yourdomain.com\error_docs\404-0.html" /> 
     </httpErrors> 
    </system.webServer> 
</configuration> 

を、私はそれを願っています役立ちます ! :)

0

テストの目的であることを行う必要があります。

サブコードをテストしないでください。カスタムエラーによって返されたstatusTextプロパティをテストします。

+0

IISはログファイルにこのフィールドを含めるために、 "IIS> ASP>ログ"アイコンをクリックするだけでサブコードを記録します。 サーバーが "500.0"にヒットした場合、 サーバが "500.19"に達すると、行の最後に500 19が表示されます。 – AlexLaforge

+0

"404.19 Wrong Droids"を返すようにテストページを設定し、ログに "404 0"を表示しました。私の答えは、ServerXMLHTTPコンポーネントやAJAXリクエストを使って、あなたがテストしていたと信じていた方法にも基づいています。 –

+0

あなたの答えをよく理解してください!それは...まあまあ...ええ..正確ではなかった;)私はあなたがそれをやったのと同じ方法でテストした:簡単な.aspテストページを使う。あなたのログには404が表示されます。0はIISがASPコードによって送信されたサブコードをドロップしたことを示しており、Classic ASPは3桁のエラーしか生成できないという事実を確認しています。ありがとうございました ! ;) – AlexLaforge

関連する問題