web-dev-qa-db-ja.com

IIS6:ASP.NETアプリケーションで404エラーをトラブルシューティングする方法は?

Windows Server 2003/IIS6にASP.NETアプリケーションがあり、何らかの理由で実行を拒否しています(その情報が役立つ場合は、Xerox Centreです)。このサーバーでは、以前は問題なく動作していました。

これで、アプリのホームページを開こうとするとすべてが得られます(http://some.intranet.server/XeroxCentreWareWeb/)は「404-ファイルまたはディレクトリが見つかりません」エラーです。

  • アプリは、ネットワークサービスとして実行される独自のアプリプールで実行するように構成されています。
  • ネットワークサービスアカウントには、構成されたディレクトリへの読み取りアクセス権があります。
  • アプリプールを停止すると、期待される「サービスが利用できません」というメッセージが表示されます。これは、アプリとそのプールが正しく配線されていることを意味します。
  • Procmonでファイルパーミッションの問題を追跡しようとしました-何も表示されません。ページの読み込み時に発生するWebアプリディレクトリへのアクセスすらありません。
  • 興味深いことに、procmonによると、Webサーバーは最初に401-2カスタムエラーファイル(サーバー構成のためにログオンに失敗しました)にアクセスしますが、次に404をクライアントに送信することを決定します。
  • 編集:アプリはWindows統合認証で実行されます。通常のユーザーもアプリディレクトリにアクセスできます(Promonにファイルシステムの「ACCESS DENIED」メッセージがあった場合は、それに気づいたでしょう。

これは、アプリケーションファイルにアクセスする前でも、ある種の奇妙な権限の問題が発生していると思います。どこを見ればいいのか分かりません。

テスト用にローカルシステムとしてアプリプールを実行しようとしましたが、役に立ちませんでした。

この場合、他に何を確認できますか?

5
Tomalak

私が見つけた答えは自明ではないのと同じくらい簡単です。

存在しなくなったアプリケーションサーバー(この場合はColdFusion)に定義された「ワイルドカードアプリケーションマップ」がまだありました。 ColdFusionアンインストーラーは、明らかにその設定をメタベースから削除することを「忘れました」。

ワイルドカードアプリケーションマップはここで定義されます。

  • IIS Managerで、[アプリケーションのプロパティ]ダイアログを開きます
  • [仮想ディレクトリ]タブで、[アプリケーションの設定]セクションを確認します
  • 「構成…」をクリックします
  • 「アプリケーション構成」ダイアログが開きます
  • [マッピング]タブにあります
2
Tomalak

まず、私はあなたがとったトラブルシューティングの手順が大好きです。もう1つの「中断」テストは、アプリプールだけでなく、サイト自体を停止して、それを処理しているがアプリプールを共有している別のサイトではないことを確認することです。

IIS6には、IIS Manager内に「Webサービス拡張機能」セクションがあります。使用しているフレームワークのバージョンが許可されていることを確認してください。最近フレームワークのバージョンを許可されていないバージョンに変更した場合許可としてマークされている場合、404エラーがスローされます。

IISログは、サブステータスコードも確認し、適切なサイトが接続されていることも確認します。

2

Webサービス拡張機能を変更して、404の問題を修正できるようにしました。これらの値は、パッチ適用サイクルの1つで変更されたと思います。

0
jdk201

ブラウザでHTTPヘッダーを表示するためのアプリケーションがいくつかあります。

ieHTTPHeaders InternetExplorerでうまく機能します。 Firefoxを使用している場合は、ライブHTTPヘッダーを検索できます。 (2番目のリンクを投稿するのに十分な担当者がいません)。

アプリケーションの物理パスは何ですか?それは仮想ディレクトリとして構成されていますか、それとも実際にはwwwrootにありますか? IISマネージャーを介してコンテンツを閲覧できますか?

0
bshacklett

IISログを確認してください。すでに実行している場合は、質問に表示されません。

404はページが見つからないため、資格情報の前にパスの問題を確認します。

0
user3914

他の人が言ったように、Wiresharkまたは別のパケットキャプチャプログラムを使用して、クライアントとサーバー間のトラフィックを分析します。これにより、クライアントがサーバーに送信している正確な要求とサーバーからの応答を確認できます。ネットワークの問題で壁に頭をぶつけていると、パケットキャプチャを実行すると、見逃したり見落としたりしたことがよくあることがわかります。

0
joeqwerty

明らかなことを指摘するリスクがあります... default.aspxはまだそのサイト/仮想ディレクトリのデフォルトドキュメントのリストにありますか?

0
squillman

1つのレベルをドロップダウンし、Wiresharkをインストールします。サーバー上のトランザクション全体をスニッフィングします。

0
Jeff Costa

asp.net /アプリプールの問題は通常、イベントログに書き込まれるため、トラフィック分析を行う前に最初に確認する場所です。

0
Trondh