専用サーバーに新しくインストールされた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はそれらを提供しません。すべてのブラウザーの開発ツールは、これらすべての静的リソースが間違ったコンテンツタイプ(画像やスタイルなどではなくプレーンテキスト)でサーバーから送信されたと報告しています。何が悪いのでしょうか?
IIS 7/7.5には、新しい「機能」-役割サービスがあります。 rsbarroからの投稿は、静的コンテンツを担当する役割サービスが1つあることを思い出させました。 Webサーバー/共通HTTP機能/静的コンテンツです。 rsbarroが示唆するように、MIMEタイプアイコンがIIS Managerに存在するかどうかを確認します。
静的コンテンツ役割サービスがインストールされていない場合は、インストールする必要があります。これを行うには、次を選択します。
あなたの説明から、これはあなたの問題のようです。
一般に、IIS7がIIS6が実行したことを実行しない場合、最初に確認することは、対応する役割サービスがインストールされているかどうかを確認することです。お役に立てれば。
IISで、Webサイトに移動し、MIMEタイプのセクションを確認します(下の画像を参照)。そのリストで.js、.css、.htmlなどのエントリを確認し、適切なMIMEタイプが指定されていることを確認してください。 IIS 7.5は、MIMEタイプが指定されている場合にのみページを表示します。デフォルトでは、これらの拡張機能のMIMEタイプは、applicationHost.config
にあるC:\Windows\system32\inetsrv\config
ファイルで設定されますフォルダ(ファイルを表示するには、管理者としてメモ帳を実行する必要がある場合があります).jsを検索すると、<mimeMap>
要素の<staticContent>
の下にエントリが見つかります。
これらの設定は、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.web
とsystem.webServer
セクション)の内容を投稿することをお勧めします。
同じ問題がありましたが、私のアプリプールはドメインアカウントで実行されていて、そのユーザーにはWebサイトフォルダーへの権限がありました。私のウェブサイトはaspxをレンダリングしましたが、静的コンテンツはレンダリングしません。私の問題を解決したのは、IIS_IUSRSグループを「認証後にクライアントを偽装する」というローカルセキュリティポリシーに追加することでした。 IIS_IUSRSグループには、私のドメインアカウントが含まれていました。 iis 7.5 windows 2008 serverを実行しています。