web-dev-qa-db-ja.com

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

専用サーバーに新しくインストールされた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はそれらを提供しません。すべてのブラウザーの開発ツールは、これらすべての静的リソースが間違ったコンテンツタイプ(画像やスタイルなどではなくプレーンテキスト)でサーバーから送信されたと報告しています。何が悪いのでしょうか?

10
Kizz

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

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

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

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

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

12
Vlad

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

iis mime types

これらの設定は、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セクション)の内容を投稿することをお勧めします。

6
rsbarro

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

2
parttimeadjunct