部分的に修飾された名前を使用すると、Web サイトは 500 エラーを返します。

部分的に修飾された名前を使用すると、Web サイトは 500 エラーを返します。

Web サービスをホストするための社内 Web サイトをセットアップしています。

この Web サイトには DNS エントリがありますservice.test.company.local。この会社はcompany.local内部アプリケーション用の DNS ゾーンとして使用しており、このエントリはすべての DNS 要求に自動的にサフィックスとして追加されます。

そのため、検索すると、service.test完全な名前と正しい IP アドレスが解決されます。

IIS 6 サイトは、IP アドレスservice.testが解決されるポート 80 をリッスンするように構成されています。

経由でこのサイトにアクセスしようとするとservice.test.company.local、アドレスが解決され、サービスが正しく表示されます。

経由でこのサイトにアクセスしようとするとservice.test、500 - 内部サーバー エラーを報告する IIS エラー ページが表示されます。

この要求については、Web サイトのログ ファイルまたはアプリケーション イベント ログにエントリは生成されません。

エラーがどこから発生しているのか理解できず、IIS から提供される情報が不足していることに非常にイライラしています。

この問題や解決策について何かアイデアはありますか? 他に確認できる情報源はありますか?

編集:

IIS からのわかりにくいエラーは次のとおりです。

未知のホスト


説明: 「service.test」という名前のサーバーが見つかりません。サーバーに DNS エントリがありません。サーバー名のスペルミスか、サーバーが存在しない可能性があります。名前を再確認して、もう一度お試しください。


編集: 2

これは、組織が DNS エントリを設定した方法に関係しているのではないかと思います。他のプレフィックス付きエントリをホスト ファイルに追加して、ローカルでサイトを正しく解決することができます。

この問題には、潜在的な問題を提案してくれる DNS の専門家が必要だと思います。残念ながら、私には DNS エントリに対する権限がないので、大変な苦労が予想されます。

答え1

運用チームに問い合わせたところ、プロキシ サーバーがリクエストをローカル ネットワークにバイパスするのではなく、リクエストを処理しようとしていることが分かりました。

返されるエラー メッセージは、IIS サーバーからではなく、プロキシ サーバーから返されます。この情報は、運用チームのメンバーが、HTTP 要求が期待どおりにプロキシ バイパス情報を送信していないことに気付いたときに偶然発見されました。

プロキシ バイパス ルールには が含まれます*.company.local。これは、他のサフィックスのないアドレスに対して機能し、完全修飾名のバイパスを提供しますが、 などの別のサフィックスが使用されている場合は適用されないようです.test

このことから、問題を解決するには問題が複雑すぎると判断し、完全修飾名を「十分な」回避策として使用することにしました。

答え2

プログラミングヒーロー、

特定の Web サイトで service.test のサイト ホスト ヘッダーを設定しましたか。1 つの IP アドレスで複数のサイトがサポートされているため、IIS はポート 80 でホストするときにホスト ヘッダーを使用して区別します。

ウェブサイトのプロパティをクリックし、詳細設定でホストヘッダーを追加し、空白に service.test と入力し、DNS が IP などに解決されている場合は、ドキュメントに正しいデフォルト ページがあることを確認して、読み込まれるはずです。

HTML が読み込まれるかどうかを確認するために、Hello World を試してください。

登録

答え3

プログラミングヒーロー、

CodingGorilla さんの指摘は正しいですね。このエラーはホスト ヘッダーの問題で見つかるものではありません。内部エラーは別の原因を示しているようです。

サイトのアプリケーションプールを確認してください。ネットワークサービスをIDとして使用していますか?http://ローカルホスト読み込まれるか、ドキュメントが見つからないというエラーが表示されますか? 新しいサイトを作成して、そのサイトで試してみるといいでしょう。ローカルホストが htm ファイルで読み込まれる場合、その特定のサイトのメタベースで何かがオフになっている可能性があります。

よろしく

答え4

あなたの編集内容から判断すると、IIS サーバーにまったく影響がないと思われます。おっしゃるとおり、リクエストは IIS ログに表示されませんし、そのようなエラーは IIS が返すエラーではないようです。

ホスト ファイル (c:\windows\system32\drivers\etc\host) を編集して、次のエントリを追加してください。

service.test    127.0.0.1

これにより、service.test リクエストが IIS サーバーに送信されるようになります (コメントで述べたように、IIS サーバー自体からリクエストを送信していると仮定します)。

それが機能する場合、問題はサーバー上の名前解決の構成方法にある可能性があります。つまり、「company.local」ドメインが DNS 検索サフィックス リストに含まれていないということです。

関連情報