IIS 7.5は静的HTMLページをロードしません


10

専用サーバーに新しくインストールされたIIS 7.5があります。ASP.NET 4.0 Webアプリがそのフォルダーにコピーされ、新しいWebサイトがポスト80の独自のIPで作成され、IIS_IUSRおよびIUSRアカウントがサイトのフォルダーに対する読み取り/実行権限を持ち、サイトが4.0 .NETの独自の統合アプリプールに割り当てられます(同じ結果でクラシックプールを試しました)。

問題:このWebサイトにアクセスしようとすると、ブラウザーはaspxページ、.axdファイルなどの.NETリソースによって生成されたコンテンツのみをロードします。静的画像、静的js、css、htmlファイルはページソースにありますが、IISはそうしませんそれらを提供しないでください。すべてのブラウザーの開発ツールは、これらすべての静的リソースが間違ったコンテンツタイプ(画像、スタイルなどではなくプレーンテキスト)でサーバーから送信されたと報告しています。何が悪いのでしょうか?


Fiddler(またはFirebug)には何が表示されますか?
SLaks、

これが可能な場合はサーバーでページを実行し、特にサーバーで静的コンテンツを単独で実行すると、完全に詳細なエラーレポートが表示されます。
アリストス'19年

Firebugは使用しません。しかし、たとえばChromeは、ページ上のjpgファイルについて、「リソースは画像として解釈されるがMIMEタイプtext / plainで転送される」と不平を言います。すべてのスタイル、js、静的HTMLページで同じです。また、スクリプトとhtmlの動的ロードは機能しません。

@アリストス:私はそれをやった。サーバーのブラウザーは、外部ブラウザーと同じ方法でページをレンダリングします。エラーはなく、不完全なページです。

Webサーバーを実行しているユーザーはこれらのファイルを読み取る権利を持っていますか?
Luc M

回答:


12

IIS 7 / 7.5には新しい「機能」-役割サービスがあります。rsbarroからの投稿は、静的コンテンツを担当する役割サービスが1つあることを思い出させました。Webサーバー/共通HTTP機能/静的コンテンツです。rsbarroの提案に従って、MIMEタイプアイコンがIISマネージャーに存在するかどうかを確認します。

静的コンテンツ役割サービスがインストールされていない場合は、インストールする必要があります。これを行うには、次を選択します。

  • サーバーマネージャー
  • 役割
  • 左ペインのWebサーバー(IIS)ノード
  • ロールサービスウィンドウまでスクロール
  • 静的コンテンツ役割サービスがインストールされているかどうかを確認します。

あなたの説明から、これはあなたの問題のようです。

一般に、IIS7がIIS6が実行したことを実行しない場合、最初に確認することは、対応する役割サービスがインストールされているかどうかを確認することです。お役に立てれば。


静的コンテンツの役割、どうしてそれを逃したのですか?ありがとう、問題を完全に修正しました。
David Thomas Garcia

6

IISで、Webサイトに移動し、MIMEタイプのセクションを確認します(下の画像を参照)。.js、.css、.htmlなどのエントリがリストに表示されていること、および適切なMIMEタイプが指定されていることを確認してください。IIS 7.5は、MIMEタイプが指定されている場合にのみページを提供します。デフォルトでは、これらの拡張子のMIMEタイプapplicationHost.configC:\Windows\system32\inetsrv\configフォルダーにあるファイルに設定されています(ファイルを表示するには、管理者としてメモ帳を実行する必要がある場合があります)。.jsを検索するだけ<mimeMap>で、<staticContent>要素の下にエントリが見つかります。

IIS MIMEタイプ

これらの設定は、web.configファイルで上書きできます。存在する場合は、次の場所に表示されますweb.config

<system.webServer>
    <staticContent>
        <remove fileExtension=".js" />
    </staticContent>
</system.webServer>

私は間違いなくそこをチェックすることから始めます。MIMEタイプセクションですべてが問題ないように見える場合は、静的ファイルのリクエストを妨害しているモジュールが存在する可能性があります(ただし<modules runAllManagedModulesForAllRequests="true" /><system.webServer>セクションに設定した場合のみ)。その場合は、セットアップされているすべてのモジュールを削除しweb.configて、静的ファイルを表示できるかどうかを確認し、一度に1つずつ読み込んで、問題の原因となっているモジュールを確認します。理解できない場合は、質問の内容web.config(または少なくともセクションsystem.websystem.webServerセクション)を投稿することをお勧めします。


2

同じ問題がありましたが、私のアプリプールはドメインアカウントで実行されていて、そのユーザーにはWebサイトフォルダーへの権限がありました。私のウェブサイトはaspxをレンダリングしましたが、静的コンテンツはレンダリングしませんでした。私の問題を解決したのは、IIS_IUSRSグループを「認証後にクライアントを偽装する」というローカルセキュリティポリシーに追加することでした。IIS_IUSRSグループには、私のドメインアカウントが含まれていました。iis 7.5 windows 2008 serverを実行しています。


私は複数回賛成できることを望みます。.cssファイルがIISによって提供されなかった理由を検索しているときに、この質問に行きました。これは、それらが格納されているフォルダーに対するWindowsの権限に関連していました。
2b77bee6-5445-4c77-b1eb-4df3e5
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.