IIS7 renvoie vide lorsqu'un contenu statique est demandé

14

J'essaie de configurer une machine de démonstration qui est EEEPC avec Windows 7 Édition Familiale Premium tous les pilotes correctement chargés (ne me demandez pas pourquoi c'est l'édition Familiale) avec IIS7 installé.

J'ai déployé l'application à démontrer sur la machine qui est un site ASP.NET MVC, ajouté un site Web via la console, ajouté un pool d'applications. Le pool d'applications s'exécute en tant que NetworkService et l'invité s'authentifie en tant que IUSR.

J'ai ajouté des droits de modification à NetworkService et des droits de lecture et d'exécution à IUSR sur le dossier du site Web et son contenu.

Lorsque j'atteins la racine du Web, disons http://example.com/ J'obtiens un HTML correct rendu depuis le site Web (ce qui signifie que l'application fonctionne) mais le problème est que tout le contenu statique revient vide.

Je ne sais pas pourquoi cela se produit. Aucune page d'erreur 404 ou 500, juste une réponse vide lorsque j'accède au contenu statique. Tout le contenu généré par ASP.NET fonctionne bien (bien qu'un peu étrange car tous les CSS et images ne se chargent pas)

Aidez-moi, IIS7 Management Console est très déroutant pour moi et j'ai besoin de la machine d'ici demain.

chakrit
la source

Réponses:

2

Dans mon cas, le rôle serveur était déjà installé, et pourtant le gestionnaire statique a servi des pages blanches même pour un site de test trivial avec juste un mappage de gestionnaire unique.

Le correctif consistait à activer la restriction de demande "Invoquer le gestionnaire uniquement si la demande est mappée". Peu importe que je le définisse sur "Fichier" ou "Fichier ou répertoire"; tant que la case est cochée, cela fonctionne:

                  entrez la description de l'image ici

Si cela n'aide toujours pas, une autre chose qui mène à des pages vierges essaie de spécifier un chemin dans la section "Chemin d'accès de la demande", comme publicou peut-être public/*. Ce dernier est tout simplement faux, tandis que le premier doit être accepté, mais entraîne plutôt des pages blanches. La solution consiste à encapsuler le mappage du gestionnaire dans une <location path='public'>section, en spécifiant *le paramètre "Chemin d'accès de la demande". Ou, dans le Gestionnaire des services Internet, développez le site et sélectionnez d'abord votre dossier, puis modifiez les mappages de gestionnaires.

RomanSt
la source
1

Comme l'a suggéré @MattB, je n'ai pas activé la fonction "Contenu statique", mais ce n'est qu'une partie du problème.

J'ai ajouté la fonctionnalité "Static Content" et pourtant le problème persiste, donc je vais supprimer le MvcHttpHandler par défaut de la liste des mappages de gestionnaires et le problème se résout en quelque sorte ... donc le problème était que MvcHttpHandler interceptait les requêtes avant le StaticFileHandler,

Pour info, après avoir installé le "Contenu statique", assurez-vous également que ...

  1. Dans le Gestionnaire des services Internet, cliquez sur votre site Web.
  2. Double-cliquez sur la fonction "Mappages de gestionnaires".
  3. Sur le côté droit (le panneau Action), vous verrez un lien intitulé "Afficher la liste ordonnée ...", cliquez dessus.
  4. Vous trouverez alors l'ordre dans lequel le module correspond à chaque demande, assurez-vous que l'ordre a du sens.

Dans mon cas, MvcHttpHandler était au-dessus de tout le reste, j'ai résolu le problème en le déplaçant vers le bas de la liste, qui est l'endroit le plus sensé dans lequel il devrait se trouver car les gestionnaires de fichiers AXD, les gestionnaires TRACE, le gestionnaire OPTIONS et le contenu statique obtiennent une chance lors du traitement de la demande en premier.

J'espère que cela aide quelqu'un à googler pour le même problème :-)

chakrit
la source