会社の Web アプリを Windows Server 2003 から Windows Server 2008 R2 に移行しました。これらはすべて .Net 2.0 の従来の Web アプリです。/Reports/... で始まるパスを持つリソースにアクセスする場合を除いて、それらはすべて正常に動作するようです。
あるアプリでは、ディスク上の物理パスは c:\Websites\app_name\WebService\Reports... です。このレポート フォルダーでは、PDF ファイルが動的に生成され、ディスクに書き込まれます。次のような URL からアクセスできます。
http://domain_name/Reports/xxxx.pdf
/Reports は、上記の物理パスにマッピングされた仮想ディレクトリです。これは2003サーバーとIIS6ではうまくいきましたが、IIS7.5と2008 R2では次のエラーが発生し続けます:
リソースが見つかりません。
説明: HTTP 404。探しているリソース (またはその依存関係の 1 つ) は、削除されたか、名前が変更されたか、一時的に利用できない可能性があります。次の URL を見直して、スペルが正しいことを確認してください。
要求された URL: /Reports/xxxx.pdf
サーバー上のディスクに書き込まれるのではなく、レポートを動的に生成し、ローカル ディスクに保存するためにクライアント ブラウザーに直接ストリーミングする別の Web アプリがあります。上記の例と同様に、レポートを生成するページは次のパスの下にあります。
/Reports/Viewer.aspx
この場合、使用されている仮想ディレクトリはありません。ブラウザで参照される URL は次のとおりです。
http://another_domain_name//Reports/Viewer.aspx
もう一度、上記と同じエラー メッセージが表示されます... HTTP 404 - リソースが見つかりません。
太陽の下ですべての許可設定を試してみましたが、うまくいきませんでした。組み込みのアカウントを使用し、最小限の権限から完全な管理者権限までの権限を持つ新しいアカウントを作成しました。また、新しい AppPool Identities を試してみましたが、成功しませんでした。ディレクトリに具体的に設定した権限、アプリプール用に構成されたアカウント、または各 Web サイト自体の基本設定は問題ではないようです。
私が発見したことの1つは、ブラウザがHTTP 404エラーを取得している間、各WebサイトのIISログファイルにこのリクエストの記録がないことです!! 要求されたリソースで失敗した 404 ログ エントリが表示されることは間違いなく予想されるため、これは私を本当に混乱させます。
注意すべき点として、レポート サービスがインストールされ有効になっているこのマシンで SQL Server 2008 Enterprise を実行しています。言い過ぎですが、私の Web サイトの /Reports パスと、マシン上で実行されている他の何かで競合が発生する可能性はありますか? サーバー上で実行されている個々のドメインと Web サイトごとに、異なるバインディング/ホスト ヘッダーを使用しています。