10
votes

Comment mettre à niveau l'application Web IIS 6, il s'ouvre donc dans Visual Studio sur la machine exécutée IIS 7

Mes applications Web créées dans VS 2008 sur Windows Server 2003, refusent d'ouvrir VS 2008 sur Windows Server 2008.

"Le projet d'application Web 'MyProjectName' est configuré pour utiliser IIS. Pour accéder aux sites Web IIS locaux, vous devez installer les composants IIS suivants: IIS 6 METABASE et IIS 6 Authentification de compatibilité Configuration de la configuration".

Je ne veux rien faire avec IIS 6, alors je ne suis donc pas installé de ces composants. Je veux pure IIS 7.

Y a-t-il un outil de mise à niveau ou quelque chose que je peux modifier dans le fichier de projet qui leur permettra d'ouvrir dans Visual Studio?


3 commentaires

Ce message concerne uniquement les sites Web IIS locaux, pas le site de production.


Ouais, je l'ai eu à ouvrir en supprimant la dernière section . En particulier, le qui spécifiait l'URL localhost. Mais si j'utilise la même URL, avec la balise à la place et exécutez Visual Studio comme administrateur, cela fonctionne! Alors wtf? C'est la même URL locale, mais si j'appelle cela, alors ça ne marche pas? OMG.


Le site de production est local. Si je mettez l'URL locale sous le "serveur Web personnalisé", cela fonctionne. Si je mettais la même URL locale sous l'option "Utiliser local IIS Web Server", juste au-dessus, cela me donne cette erreur. C'est ridicule.


8 Réponses :


13
votes

C'est bizarre. La seule chose que je remplace est " http: // localhost / site "; avec " http: // localhost / site " dans le fichier de projet et les charges du projet et les débogues (en tant qu'administrateur).

Pourquoi ce changement est-il du nom de balise, qui semble fournir les mêmes informations - suffisamment d'URL du projet pour empêcher le chargement de l'ensemble du projet. Inacceptable.


4 commentaires

J'ai eu le même problème. Votre patch fonctionne bien !! Je souhaite que vous donniez une référence à l'endroit où vous avez trouvé cette information.


Aucune référence n'existe, parce que je l'ai compris moi-même. Les deux balises étaient présentes et je viens d'essayer de déplacer l'URL d'une balise à l'autre et supprimé la balise IISURL, et cela a fonctionné. C'est juste que si vous utilisez la balise IISURL, il s'attend à ce que certaines fonctionnalités soient présentes sur le serveur nécessitant les fonctionnalités de compatibilité IIS 6. Si vous utilisez la douane de douane, j'imagine que cela utilise des fonctionnalités génériques et évite d'utiliser des caractéristiques spécifiques IIS. Les tags disent tout cela, je suis juste surpris que cela entraînerait une charge de projet sans aucune sorte d'options de récupération ... juste un crash.


J'ai essayé cela, mais je crois que cela "fonctionne" uniquement parce que Visual Studio revient simplement à utiliser le serveur Web de développement, Cassini et non IIS. Si j'installez ensuite dans les propriétés du projet >> Web et essayez de le faire utiliser à nouveau IIS, il donne la même erreur à avoir besoin de la composante IIS 6 ... Compatibilité. Quelqu'un peut-il confirmer ou distinguer ce suspicion?


Il "fonctionne" car le projet s'ouvre au lieu de crash Visual Studio. Il fonctionne également car Visual Studio n'essaiera pas d'utiliser des fonctionnalités spécifiques à l'IIS, qu'il ne peut pas utiliser avec IIS 7 sans les composants de compatibilité. Modification du fichier de projet Comme je l'ai suggéré, autorisez le projet à ouvrir dans Visual Studio 2008, sur Windows Server 2008, sans composants de compatibilité IIS 6 installés. C'est tout. Pour déboguer dans IIS 7, garanti ... Compilez le projet, publiez-le (si nécessaire), joignez le processus Visual Studio débogueur au processus "W3WP.EXE" de l'IIS 7 et ouvrez l'URL de votre navigateur Web.



1
votes

Parce qu'une balise indique que IIS héberge le site, et l'autre dit qu'un serveur Web personnalisé (Autre) est.

Dans le serveur personnalisé, VS n'essaie pas de gérer quoi que ce soit.

Dans IIS, il souhaite pouvoir configurer des choses comme des répertoires virtuels, des autorisations, ASP.NET config, etc.

Jugement du message d'erreur, VS estime que votre machine locale n'est pas configurée avec les composants nécessaires pour le faire.


3 commentaires

Quel serveur Web, autre que IIS, fonctionnant sur localhost (la même machine que Visual Studio est en cours d'exécution) hébergerait un "projet d'application Web ASP.NET"? Oui, c'est ce que je pensais, IIS. Je conviens que cela semble penser que les composants IIS 6 doivent être installés, mais cela signifie que Visual Studio 2008 est incapable de gérer les sites construits pour la version de IIS (7) faite pour Windows Server 2008? Quoi qu'il en soit, Visual Studio devrait simplement faire preuve d'utilisateurs à la demande de gestion IIS afin qu'elles apprennent à l'utiliser bien, plutôt que temporairement de les distraire avec un sous-ensemble H @ LF- @ SS3D de ses fonctionnalités.


MONO. Cassini. Roulez votre propre (c'est ce que les points de fin de service peuvent vous permettre de faire).


Vissez "Rouler le vôtre". Nous ne devrions pas avoir à réinventer la roue pour exécuter un site simple! Nous essayons simplement d'utiliser IIS et d'exécuter un site Web fricking! Simple! Si nous ne pouvons pas simplement exécuter un site Web simple dans IIS7 sans cette merde de maïs avec IIS 6, c'est déraisonnable et trompeur. J'ai eu le même problème aujourd'hui et je pense qu'il est ridicule que nous ne pouvons pas ouvrir un projet WAP dans VS 2008 sans avoir à installer des composants IIS 6. L'IIS 7 n'est-il pas «mieux»? Je veux dire que si nous avons un nouveau projet .NET 3.5, pourquoi devrions-nous même avoir à toucher IIS 6! Ce n'est pas déduit et c'est juste étrange.



0
votes

Vous devez aller au panneau de commande, Tournez les fonctionnalités de Windows sur ou désactivez, développez les services d'informations Internet et à la case à cocher «IIS 6 Metabase et IIS 6 Configuration Compatibilité». Ce problème fixe dans mon cas (mais je suis sur Windows 7)

en détail ici: http://msdn.microsoft.com/fr -us / bibliothèque / aa964620.aspx


1 commentaires

+1 Parce que malgré le rejet d'une telle approche originale, c'est une alternative rapide et pratique pour un grand magasin où les modifications de la configuration du projet ont un impact plus potentiel.



1
votes

J'ai eu un problème similaire à l'ouverture d'un projet d'application Web que j'avais mis à niveau auparavant de .NET 1.1 Visual Studio 2008 m'a empêché d'ouvrir le projet sur le serveur de visite virtuel car sur mon système d'exploitation hôte, je n'ai pas d'IIS ou de composant associé installé La solution consiste à cliquer avec le bouton droit de la souris sur le nom du projet qui ne parvient pas à charger - vous pouvez également ouvrir le fichier .csproj dans votre système de fichiers - et modifier le nœud Utilisé sur false


0 commentaires

0
votes

J'ai trouvé un simple message de blog qui explique un peu le problème et comment cette affiche a résolu l'utilisation d'utilisateurs de basastallty le même souvenir que vous avez proposé (piratage du fichier de projet). http: // doyen o. blogspot.com/2009/04/open-iis-hosted-visual-studio-project.html


0 commentaires

1
votes

Une autre affiche a publié ce qui suit:

Vous devez aller au panneau de commande, tourner Windows fonctionne sur ou off, développer Services d'information sur Internet, et Rechercher case à cocher "IIS 6 Métabase et IIS 6 Compatibilité de la configuration ". Ceci problème fixe dans mon cas (mais je suis sur Windows 7)

Malgré le fait que cette case à cocher dans Windows 7 ait les mots "IIS 6", il ne semble pas impliquer que vous ne pouvez pas utiliser IIS 7. En fait, la boîte à cocher pour activer "IIS 6 Compatibilité de la configuration de la métabase et de l'IIS 6 "dit ce qui suit:

"Installez la couche de métabase IIS et de compatibilité pour permettre aux appels de métabase d'interagir avec le nouveau magasin de configuration IIS 7."

me semble que cela a peu à voir avec IIS 6 et tout avec la configuration de l'IIS 7 pour interagir avec les applications héritées. En outre, en cliquant sur cette case à cocher résolu ce problème pour moi.


1 commentaires

Que ce soit un morceau de l'IIS 6 qui interagit avec IIS 7, ou une vieille morceine de code IIS 6 exécutant dans IIS 7 ... Le résultat final est qu'il permet de travailler les protocoles hérités. Je ne veux pas de protéger des protocoles hérités. Si ce n'est pas purement fonctionnel sur IIS 7, je veux qu'il écrisse, alors je sais que je dois la mettre à niveau.



2
votes

J'ai couru dans le même problème avec une application Web de VS2003 à VS2010. Dans le fichier de solutions, il y avait une section qui ressemblait à ceci: xxx

J'ai remplacé "http: //localhost/myproject/myproject.csproj" avec "myProject.csproj". J'ai également supprimé le fichier myProject.csproj.webinfo, car il avait une référence au même répertoire virtuel IIS.

Une fois que j'ai fait ces deux changements, l'Assistant de conversion VS2010 semblait fonctionner correctement et mon application Web a ouvert ses portes. . Mon projet n'était plus dépendant de l'IIS.


0 commentaires

0
votes

Ouvrez le fichier * .csproj dans le Bloc-notes et trouvez toutes les références à True, activez-les sur FALSE.

Votre projet sera alors ouvert. Vous pouvez modifier davantage les propriétés à l'aide de l'interface graphique si vous le souhaitez (port, URL, etc.)


0 commentaires