2010-10-07 5 views
3

Je rencontre des problèmes en essayant d'héberger MVC 2 sur IIS de XP! (VS VS 2008).ASP.NET MVC 2, Windows XP et IIS 5.1

Après beaucoup de difficultés, j'ai finalement found a way pour afficher mon site MVC 2 à partir d'IIS 5.1, mais le problème est qu'il n'y a pas de style! Des idées sur la façon dont je devrais résoudre ce problème?

Le problème est probablement l'emplacement du chemin. En suivant les suggestions du lien ci-dessus, si je change le chemin relatif de mon lien CSS de <link href="../../Content/Site.css" rel="stylesheet" type="text/css" /> à <link href="%3C%=Url.Content%28" ~="" content="" site.css="")="" %>="" rel="stylesheet" type="text/css" /> alors il ne fait aucune conversion. Quand je le change en <link href="<%=Url.Content(" ~="" content="" site.css="")="" %>="" rel="stylesheet" type="text/css" /> alors j'obtiens l'erreur "Newline in constant".

EDIT: La <link href="<%= Url.Content("~/Content/Site.css")%>" rel="stylesheet" type="text/css" /> normale se traduit <link href="/Mvc2.VS2008/Content/Site.css" rel="stylesheet" type="text/css" /> (où Mvc2.VS2008 est ma racine d'un site Web), mais Content/Site.css ne se trouve pas quand hébergé cette façon.

Répondre

1

Je ne sais pas exactement quel était le problème, mais la valeur renvoyée par Url.Content() n'a pas été reconnue par le serveur IIS (vous ne pouviez pas le récupérer à partir du navigateur). En fait, je ne suis pas censé en avoir besoin pour des liens simples de toute façon.

Étapes pour résoudre:

  1. reinstaller IIS 5.1 (désinstallation, redémarrage, supprimez le dossier C: \ Inetpub, installer).
  2. registre .NET pour IIS (première v2 puis v4): (Error message = "Failed to access IIS metabase")
    • Dans l'invite de commande, accédez au dossier approprié (par exemple cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727)
    • aspnet_regiis -i
    • iisreset
      • Si cette étape échoue avec l'erreur "Le service n'a pas répondu à la demande de démarrage ou de contrôle en temps opportun." (2147943453, 8007041d) ", silencieusement malédiction de la frustration, et redémarrez le site manuellement via la console IIS (Démarrer -> Programmes -> Outils d'administration -> Internet Information Services). Si vous êtes (légitimement) paranoïaque, redémarrez votre PC.
  3. Ajouter accès en lecture à tout le monde
    • Download MetaAcl
    • commande Ouvrez l'invite
    • Metaacl.vbs "IIS://localhost/W3SVC"
      • Voir l'accès actuel (Tout le monde a seulement E)
    • Metaacl.vbs "IIS://localhost/W3SVC" Everyone R
      • CE fixe IT
  4. Ajouter répertoire virtuel IIS
    • Vous savez, dans la console IIS pour le « Site Web par défaut."
  5. Rappels sur la publication: (vous devez savoir ce déjà)
    • authentification Windows (<authentication mode="Windows" /> dans web.config) vous oblige à activer l'authentification Windows intégrée dans la Sécurité de répertoire IIS
    • Il aide à désactiver l'anonymat. l'accès. (Ajouter <authorization><deny users="?"/></authorization> dans web.config, ou décocher "l'accès anonyme" dans le répertoire IIS de sécurité)
  6. Configure IIS virtual folder
    • IIS Configuration Mappages (clic droit sur le dossier virtuel -> Propriétés -> Répertoire virtuel Tab -> Configuration -> Mappages Tab)
    • Ajouter extension, chemin exec = (copie de la » .aspx "*." "extension)
    • Décocher « vérifier que le fichier existe »
    • Cliquez sur OK (cela va sans dire)
  7. Chargez votre site dans votre navigateur préféré.

Maintenant tout devrait être juste pêche (cela a fonctionné sur mon PC). Il ne devrait plus y avoir besoin de Url.Content(), et le style devrait juste fonctionner.

Questions connexes