2009-05-22 6 views
8

J'ai été chargé d'ajouter des fonctionnalités à un site Web IIS 6.0 existant. Pour ce faire, j'ai construit une application ASP.NET MVC. Il fonctionne correctement lorsqu'il est déployé comme propre site, mais ne semble pas fonctionner lorsque j'essaie de le déployer en tant que répertoire virtuel sur le site réel où il doit vivre.Pourquoi mon répertoire virtuel IIS fonctionne-t-il avec http: // localhost mais pas http: // computername?

Le nom du serveur est CWEBSERVER et l'adresse IP est 192.168.1.11. De la recherche au Gestionnaire des services Internet, c'est la structure du site:

(Default Website) (root) 
    - PRODUCTION (vDir) 
    - CONTENT (not a vDir) 
    - DATAFOLDER (vDir, contains MVC app, just added by me, not working) 

La chose étrange est que lorsque je tape l'URL suivante à partir d'un navigateur sur le serveur, il fonctionne:

http://localhost/DATAFOLDER/account.aspx 
http://127.0.0.1/DATAFOLDER/account.aspx 
http://192.168.1.11/DATAFOLDER/account.aspx 

L'URL suivante (qui est celui que j'ai besoin de travailler) n'a pas:

http://CWEBSERVER/DATAFOLDER/account.aspx 

l'erreur que je reçois est « la ressource ne peut pas être trouvé. » Après avoir regardé de plus près, j'ai réalisé que les demandes à http://CWEBSERVER vont à PRODUCTION vDir, mais les appels au http://localhost ou http://192.168.1.11 vont à la racine du site. Je suppose que c'est quelque chose configuré par le concepteur du site d'origine. Je ne suis pas sûr de savoir comment changer cette configuration, mais je ne pense pas que je puisse la changer de toute façon parce qu'il y a effectivement une tonne d'autres répertoires qui seraient affectés. L'autre chose que je voulais souligner est la suivante: le dossier CONTENT est accessible en allant au http://CWEBSERVER/CONTENT. C'est vraiment bizarre puisque je pensais que le http://CWEBSERVER me dirigeait vers la racine, donc je ne pense pas que le "/ CONTENT" serait en mesure d'accéder au dossier CONTENT.

Maintenant, mon problème est le suivant: comment accéder à mon DATAFOLDER via http://CWEBSERVER/DATAFOLDER? Je pense que je devrais juste mettre le DATAFOLDER vDir à l'intérieur du PRODUCTION vDir. Je l'ai essayé, et en utilisant le localhost ou IP c'est toujours accessible via:

http://localhost/PRODUCTION/DATAFOLDER/account.aspx 
http://127.0.0.1/PRODUCTION/DATAFOLDER/account.aspx 
http://192.168.1.11/PRODUCTION/DATAFOLDER/account.aspx 

Lorsque j'utilise CWEBSERVER, cependant, il échoue encore:

http://CWEBSERVER/DATAFOLDER/account.aspx 

L'erreur est encore « La ressource ne peut pas être a trouvé.". Quelqu'un peut-il nous éclairer là-dessus? Plus précisément, j'ai ces questions:

  1. Comment http://localhost aller à la racine, et http://CWEBSERVER aller à la production vdir? Où puis-je changer ce paramètre?
  2. Pourquoi "http://localhost/PRODUCTION/DATAFOLDER/account.aspx" fonctionnerait-il mais pas "http://CWEBSERVER/DATAFOLDER/account.aspx"?

La réponse acceptée à cette question (à qui la prime sera accordée) devra être en mesure de faire en sorte que je puisse accéder au http://CWEBSERVER/DATAFOLDER/account.aspx. Merci!

+0

Quelle erreur obtenez-vous? –

+0

ping cwebserver et utilisez cette adresse IP dans votre URL et voir si cela fonctionne. cela vous dira si c'est un problème de DNS/firewall ou si c'est un problème iis –

Répondre

11

Vous avez probablement lié IIS à l'adresse IP uniquement. Allez dans le Gestionnaire des services Internet, puis accédez aux propriétés sur le site Web. Ensuite, dans l'onglet Site Web, accédez aux propriétés.

Ajoutez une identité pour cette valeur d'en-tête d'hôte.

Si nécessaire, vous pouvez ajouter plusieurs liaisons.

mise à jour

Je pense que je sais ce que vous voulez maintenant. Depuis le Gestionnaire des services Internet, développez votre site Web par défaut. Ensuite, faites un clic droit sur le répertoire virtuel Production et choisissez "Créer un répertoire virtuel". Appelez ce nouveau DATAFOLDER. Puis reliez ceci à l'emplacement existant sur votre système de fichiers. Je pense vraiment que vous devez nettoyer cela un peu. La première chose que je ferais est de décider comment tout est censé être accessible. En d'autres termes, quand ils tapent http://www.mysite.org/ Qu'est-ce que c'est censé être? Si c'est le répertoire PRODUCTION, puis Créez un nouveau site et pointez-le sur le répertoire PRODUCTION, puis créez votre application virtuelle DATAFOLDER en dessous.

+0

Merci pour le conseil. Quand je regarde la liste des identités, tout ce que je vois est "Default" pour le port 80. J'ai également ajouté un tas d'informations que j'ai trouvées. MERCI DE VOTRE AIDE! Je suis très reconnaissant pour tout ce que vous pouvez me dire. – skb

+0

Merci pour votre mise à jour, Chris. J'ai essayé d'ajouter le vRAD DATAFOLDER sous PRODUCTION vDir, mais pour une raison inconnue, je ne peux toujours pas y accéder en utilisant www.mysite.org/DATAFOLDER. localhost/PRODUCTION/DATAFOLDER fonctionne cependant. Je pense que cela pourrait aider si je pouvais d'abord comprendre pourquoi www.mysite.org est dirigé vers PRODUCTION vDir, mais localhost va à la racine du site. Peut-être que si je pouvais comprendre cette différence, je pourrais voir ce qui fait que les choses ne fonctionnent toujours pas. Des idées? – skb

+0

Vous devriez vraiment recommencer avec vos fixations. Cela ressemble à un répertoire virtuel pour PRODUCTION a été créé alors qu'il n'aurait pas dû être. Commencez avec un nouveau site, donnez-lui la liaison www.mysite.org et pointez-le sur votre répertoire PRODUCTION. Ajoutez ensuite un répertoire virtuel en dessous qui pointe vers votre dossier de données. – NotMe

0

add '192.168.1.11 cwebserver' à% windir%/system32/drivers/etc/hosts

+1

Merci, mais ce n'est pas le problème. Il doit également être accessible à partir de beaucoup d'autres machines. – skb

1

Do comme Chris dit et animé ajouter des liaisons pour les autres noms d'hôtes ou d'ajouter un nouveau site avec les paramètres de la même contenu. IIS répond en voyant les informations d'en-tête de l'hôte et si vous n'avez que le site Web par défaut avec une seule liaison au port 80, il ne gérera pas tous les en-têtes possibles.

Si le nom est interne à votre société, comme le nom de la machine ou une entrée DNS interne, vous pouvez vous en passer en laissant la liaison par défaut effectuer le travail. Si cela ne fonctionne pas lors du test, ajoutez une liaison pour cette situation (CWEBSERVER ou mysite.org). Testez-le avec et sans le www si vous vous en souciez en travaillant dans les deux sens.

Il n'y a pas grand inconvénient à ajouter plusieurs "sites" dans IIS pour le même contenu. Par exemple, vous pourriez avoir

mysite.org souligné /PRODUCTION/DATAFOLDER/index.html

et

marketingsite.com pointé /PRODUCTION/DATAFOLDER/index.html

Ensuite, vous peut faire des choses comme avoir différents paramètres SSL et ainsi de suite. Sur mon serveur Web, rien ne se passe sur le site Web par défaut à moins que quelque chose ne se passe mal (comme j'ai configuré une nouvelle adresse IP externe et que je n'ai pas encore modifié les liaisons).

Choisissez votre poison mais il vous suffit essentiellement d'ajouter des paramètres dans IIS jusqu'à ce qu'il traite toutes les adresses possibles comme vous le souhaitez.

+0

J'essaie de faire le contraire de ce à quoi vous faites référence. Je ne veux pas de plusieurs "sites" pour le même contenu, je veux un contenu disparate "fusionné" en un seul site. J'ai un site par défaut. Ce site a un PRODDir vDir que "www.mysite.org" pointe vers (BTW, je ne peux pas comprendre comment ce vDir finit par être la "racine" de "www.mysite.org" mais pour "localhost" il est non, je ne vois pas de paramètre pour le vDir ou le site). Je ne me soucie pas de localhost, j'ai juste besoin que mysite.org/DATAFOLDER pointe vers un vDir séparé. Est-ce possible? – skb

5

Bien que je n'ai pas parcouru toute la liste des réponses, je suis tombé sur cette solution de la manière suivante. Mes liens de page Web fonctionnent avec localhost mais pas avec un nom d'IP ou d'ordinateur. Il n'y a pas d'erreur, surtout avec GREAT IE (****).

Pour résoudre ce problème, j'ai ajouté le site dans les sites de confiance de IE.

Cela peut aider à réduire la frustration!

+0

Oui, ça arrête beaucoup de frustration! Merci! – DrCord

2

J'ai eu un problème similaire qui a été résolu en affectant une adresse IP statique à mon serveur IIS temporaire. (J'ai attribué la même adresse IP que celle allouée dynamiquement, qui était 192.168.56.101.)

Cela peut aider quelqu'un.

Vérifiez également this pour les paramètres de pare-feu.

1

Pour moi, il était un problème de pare-feu:

  1. Aller à: Panneau de configuration -> Pare-feu Windows -> Autoriser un programme ou une fonctionnalité via le Pare-feu Windows

  2. Faire défiler vers le bas de la liste et sélectionnez la case à cocher pour les services www (http).

  3. Enregistrer

Maintenant, je peux accéder à http://computername.domain Nom

Questions connexes