2009-07-08 13 views
10

Mis aplicaciones Web creadas en VS 2008 en Windows Server 2003, se niegan a abrir en VS 2008 en Windows Server 2008.Cómo actualizar IIS 6 aplicación web, por lo que se abre en Visual Studio en la máquina que ejecuta IIS 7

" El proyecto de aplicación web 'MyProjectName' está configurado para usar IIS. Para acceder a los sitios web de IIS locales, debe instalar los siguientes componentes de IIS: IIS 6 Metabase y IIS 6 Configuration Compatibility Authentication ".

No quiero tener nada que ver con IIS 6, así que no estoy instalando esos componentes. Quiero puro IIS 7.

¿Hay alguna herramienta de actualización o algo que pueda modificar en el archivo del proyecto que les permita abrir en Visual Studio?

+0

Ese mensaje es solo acerca de los sitios web locales de IIS, no del sitio de producción. –

+0

Sí, lo tengo que abrir eliminando la última sección . En particular, el que especificó la URL del host local. Pero, si utilizo la misma URL, con la etiqueta y ejecuto Visual Studio como administrador, ¡funciona! Entonces, ¿eh? Es la misma URL local, pero si la llamo así, ¿no funciona? Dios mio. – Triynko

+0

El sitio de producción ES local. Si pongo la URL local bajo "Usar servidor web personalizado", funciona. Si pongo la MISMA URL local bajo la opción "Usar servidor web IIS local" justo encima, me da ese error. Eso es ridículo. – Triynko

Respuesta

13

Esto es extraño. Lo único que reemplazo es "<IISUrl> http://localhost/site </IISUrl>"; con "<CustomServerUrl> http://localhost/site </CustomServerUrl>" en el archivo del proyecto, y el proyecto carga y depura (como admin) bien.

¿Por qué este cambio en el nombre de la etiqueta, que parece proporcionar la misma información - la URL del proyecto? Suficiente para evitar que se cargue todo el proyecto. Inaceptable.

+0

Tuve el mismo problema. Tu parche funciona genial !! Desearía que me dieras una referencia sobre dónde encontraste esta información. – MattSlay

+0

No existe referencia, porque lo descubrí por mi cuenta. Ambas etiquetas estaban presentes, e intenté mover la URL de una etiqueta a la otra y eliminé la etiqueta IISUrl, y funcionó. Es solo que si usa la etiqueta IISUrl, espera que ciertas características estén presentes en el servidor que requieren las características de compatibilidad de IIS 6. Si usa CustomServerURL, entonces imagino que usa características genéricas y evita el uso de cualquier característica específica de IIS. Las etiquetas lo dicen todo, estoy sorprendido de que esto provoque la falla de un proyecto sin ningún tipo de opciones de recuperación ... solo CRASH. – Triynko

+0

Intenté esto, pero creo que "funciona" solo porque Visual Studio simplemente vuelve a usar el servidor web de desarrollo, Cassini, y no IIS. Si luego voy a las propiedades del proyecto >> Web, y trato de hacer que use IIS nuevamente, da el mismo error sobre la necesidad de IIS 6 ... Componente de compatibilidad. ¿Alguien puede confirmar o des-confirmar esa sospecha? –

1

Porque una etiqueta indica que IIS aloja el sitio y la otra dice que es un servidor web personalizado (otro).

En el servidor personalizado, VS no intenta administrar nada.

En IIS, que quiere ser capaz de configurar cosas como directorios virtuales, los permisos de configuración ASP.NET, etc.

a juzgar por el mensaje de error, VS cree que el equipo local no está configurado con el componentes que necesita para hacer eso.

+1

¿Qué servidor web, aparte de IIS, ejecutándose en localhost (la misma máquina en la que se está ejecutando Visual Studio) estaría alojando un" Proyecto de aplicación web ASP.NET "? , eso es lo que pensé, IIS. Estoy de acuerdo en que parece que los componentes de IIS 6 deben instalarse, pero ¿eso significa que Visual Studio 2008 es incapaz de administrar sitios creados para la versión de IIS (7) creada para Windows Server 2008? De todos modos, Visual Studio debería simplemente señalar a los usuarios a la aplicación de administración IIS para que aprendan a usarlo bien, en lugar de distraerlos temporalmente con un subconjunto ah @ lf- @ ss3d de su funcionalidad. – Triynko

+0

MONO. Cassini. Haga rodar el suyo (eso es lo que los puntos finales del servicio pueden permitirte hacer). –

+1

¡Girando la rueda! ¡No deberíamos reinventar la rueda para ejecutar un sitio simple! ¡Simplemente estamos tratando de usar IIS y ejecutar un sitio web travieso! no podemos simplemente ejecutar un sitio web simple en IIS7 sin esta basura de cornball con IIS 6 que no es razonable ni engañoso. Tuve el mismo problema hoy y creo que es ridículo que no podamos abrir un proyecto WAP en VS 2008 sin tener que instalar los componentes de IIS 6. ¿No es todo el propósito de IIS 7 "mejor"? Quiero decir, si tenemos un nuevo proyecto .NET 3.5, ¿por qué deberíamos siquiera tener que tocar IIS 6? No se infiere y es extraño. – PositiveGuy

0

Debe ir al Panel de control, activar o desactivar las características de Windows, expandir Internet Information Services y buscar la casilla de verificación "IIS 6 Metabase e IIS 6 configuration compatibility". Este problema fija en mi caso (pero estoy en Windows 7)

En detalle aquí: http://msdn.microsoft.com/en-us/library/aa964620.aspx

+0

-1: explícitamente declaró que no quiere tener nada que ver con IIS 6. –

+0

Lo siento, lo leí mal. – algiecas

+0

+1 porque a pesar del rechazo del cartel original de dicho enfoque, es una alternativa rápida y práctica para una gran tienda donde los cambios en la configuración del proyecto tienen un mayor impacto potencial. – Jollymorphic

1

que tenía un problema similar abrir un proyecto de aplicación Web que había mejorado previamente de .Net 1.1 Visual Studio 2008 me impidió abrir el proyecto en el servidor invitado virtual porque en mi sistema operativo host no tengo ningún IIS o componente relacionado instalado la solución es hacer clic derecho en el nombre del proyecto que no se carga; alternativamente, abra el archivo .csproj dentro de su sistema de archivos - y cambiar el nodo UseIIS a falso

1

Otro cartel publicado lo siguiente:

Tienes que ir a Panel de control, Turn características de Windows o apagado, ampliar de Internet Information Server, y la casilla de verificación hallazgo "IIS 6 y metabase de IIS 6 compatibilidad de configuración ".Este tema fijo en mi caso (pero estoy en de Windows 7)

A pesar de que esta casilla de verificación en Windows 7 tiene las palabras 'IIS 6' en ella, no parece dar a entender que no se puede usar IIS 7. De hecho, la información sobre herramientas para la casilla de verificación para habilitar "IIS 6 Metabase e IIS 6 configuration compatibility" dice lo siguiente:

"Instalar metabase de IIS y capa de compatibilidad para permitir que las llamadas de metabase interactúen con el nuevo almacén de configuración de IIS 7 ".

Me parece que esto tiene poco que ver con IIS 6 y todo lo relacionado con la configuración de IIS 7 para interactuar con aplicaciones heredadas. Además, al hacer clic en esta casilla de verificación se resolvió este problema para mí.

+0

Si se trata de una porción de IIS 6 que interactúa con IIS 7, o una parte antigua de código de IIS 6 que se ejecuta en IIS 7 ... el resultado final es que permite que los protocolos heredados funcionen. No quiero que los protocolos heredados funcionen. Si no funciona solo en IIS 7, quiero que se cuelgue, por lo que sé que debo actualizarlo. – Triynko

2

Me encontré con el mismo problema con una actualización de la aplicación web de VS2003 a VS2010. En el archivo de soluciones, hubo una sección que se veía así:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyProject", "http://localhost/MyProject/MyProject.csproj", "{B5D94F04-9681-4391-8323-E39BE66CD0C1}" 
    ProjectSection(ProjectDependencies) = postProject 
    EndProjectSection 
EndProject 

que sustituyó a la "http: //localhost/MyProject/MyProject.csproj" con "MyProject.csproj". También eliminé el archivo MyProject.csproj.webinfo, porque tenía una referencia al mismo directorio virtual de IIS.

Una vez que hice esos dos cambios, el asistente de conversión VS2010 pareció funcionar correctamente y se abrió mi aplicación web. Mi proyecto ya no dependía de IIS.

+0

Esto funcionó perfectamente, gracias –

0

Abra el archivo * .csproj en el bloc de notas y encuentre todas las referencias a True, cambie a false.

Su proyecto se abrirá. Puede editar las propiedades usando la GUI si lo desea (puerto, url, etc.)

Cuestiones relacionadas