Question IIS 7.5 ne charge pas les pages HTML statiques


Il existe un IIS 7.5 fraîchement installé sur un serveur dédié. Application Web ASP.NET 4.0 copiée dans son dossier, un nouveau site Web est créé sur son adresse IP après 80, les comptes IIS_IUSR et IUSR ont des droits en lecture / exécution sur le dossier du site. Le site est attribué à son propre pool d'applications intégrées avec 4.0 .NET. (J'ai essayé la piscine classique avec les mêmes résultats).

Le problème: lorsque j'essaie d'accéder à ce site Web, le navigateur charge uniquement le contenu généré par les ressources .NET telles que les pages aspx, les fichiers .axd, etc. Les images statiques, les fichiers js, css et html statiques sont dans le code source, mais IIS ne ne les sers pas. Les outils de développement de tous les navigateurs se plaignent de ce que le serveur a envoyé toutes ces ressources statiques avec un type de contenu incorrect (texte brut à la place de l'image, styles, etc.). Qu'est-ce que je fais mal?


9
2018-05-19 00:42


origine


Que voyez-vous dans Fiddler (ou Firebug)? - SLaks
Si c'est possible, exécutez la page sur le serveur, en particulier le contenu statique sur le serveur et obtenez un rapport d'erreur détaillé. - Aristos
Je n'utilise pas Firebug. Mais Chrome, par exemple, se plaint de "Ressource interprétée comme une image mais transférée avec le type MIME text / plain" à propos d’un fichier jpg sur la page. La même chose pour tous les styles, js et pages HTML statiques. De plus, les chargements dynamiques de scripts et de HTML ne fonctionnent pas.
@ Aristos: Je l'ai fait. Le navigateur du serveur affiche la page de la même manière que les navigateurs externes. Aucune erreur, juste une page incomplète.
L’utilisateur du serveur Web a-t-il le droit de lire ces fichiers? - Luc M


Réponses:


IIS 7 / 7.5 a une nouvelle "fonctionnalité" - Services de rôle. Le message de rsbarro m'a rappelé qu'il existe un service de rôle responsable du contenu statique. C'est un serveur Web / Fonctionnalités HTTP communes / Contenu statique. Vérifiez si l’icône Types MIME est présente dans le Gestionnaire des services Internet, comme suggéré par rsbarro.

Si ce n'est pas le cas, vous devez installer le service de rôle Contenu statique. Pour ce faire, sélectionnez le:

  • Gestionnaire de serveur
  • Rôles
  • Noeud de serveur Web (IIS) dans le volet de gauche
  • faites défiler jusqu'à la fenêtre Services de rôle
  • voir si le service de rôle contenu statique est installé.

D'après ce que vous décrivez, cela semble être votre problème.

En général, si IIS7 ne fait pas ce que IIS6 a fait, la première chose à vérifier est de voir si le service de rôle correspondant est installé. J'espère que cela t'aides.


10
2018-05-19 13:33



Contenu du contenu statique, comment est-ce que j'ai raté ça? Merci, corrige parfaitement le problème. - David Thomas Garcia


Sous IIS, accédez à votre site Web et vérifiez la section Types MIME (voir image ci-dessous). Assurez-vous de voir les entrées dans cette liste pour .js, .css, .html, etc., et que le type MIME approprié est spécifié. IIS 7.5 ne servira les pages que si un type MIME est spécifié. Par défaut, les types MIME pour ces extensions sont configurés dans le applicationHost.config fichier situé dans C:\Windows\system32\inetsrv\config dossier (vous devrez peut-être exécuter le bloc-notes en tant qu’administrateur pour afficher le fichier). Il suffit de chercher .js et vous devriez trouver une entrée sous <mimeMap> dans le <staticContent> élément.

iis mime types

Ces paramètres peuvent être remplacés dans votre web.config fichier. S'ils le sont, ils apparaîtront à l'emplacement suivant dans le web.config:

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

Je commencerais certainement par vérifier ici. Si tout se passe bien dans la section Types MIME, il est possible que vous ayez un module qui interfère avec les demandes de fichiers statiques (mais très probablement seulement si vous avez <modules runAllManagedModulesForAllRequests="true" /> mettre dans votre <system.webServer> section). Si tel est le cas, je supprimerais tous les modules installés dans votre web.config et voyez si vous pouvez faire apparaître les fichiers statiques, puis lisez-les un à un pour voir quel module est à l'origine du problème. Si vous ne pouvez pas le comprendre, je vous suggérerai de publier le contenu de votre web.config (ou du moins le system.web et system.webServer sections) dans la question.


6
2018-05-19 03:44



Absolument travaillé pour moi. Merci beaucoup. - Nick


J'avais le même problème, mais mon pool d'applications s'exécutait sous un compte de domaine et cet utilisateur avait les droits sur le dossier du site Web. Mon site Web rendu aspx mais pas de contenu statique. Le problème a été résolu en ajoutant le groupe IIS_IUSRS à la stratégie de sécurité locale appelée "emprunter l'identité d'un client après l'authentification". Le groupe IIS_IUSRS contenait mon compte de domaine. J'utilise iis 7.5 windows 2008 server.


1
2018-05-30 02:37