2010-05-12 13 views
8
  1. Hemos implementado un sitio .net 4 asp.net en IIS 6.0.
  2. Default.aspx está configurado como uno de los documentos predeterminados.
  3. Cuando acceder al sitio utilizando la siguiente url

http://testsiteDefault.aspx con IIS 6.0 y .Net 4?

Esperamos que rinde

http://testsite/Default.aspx

Pero en vez obtenemos 404 Not found error. No tuvimos este problema cuando se implementó en .Net 2.0. Lo único que ha cambiado en el servidor es que utilizamos .NET 4 en lugar de .NET 2.0.

ACTUALIZACIÓN: Intenté el siguiente enlace pero no funcionó.

Getting an ASP.NET 4 application to work on IIS6

La versión marco en el servidor es .NET 4 RC. ¿Ayudará si instalamos la última versión de .NET 4 en el servidor?

Actualización: El problema está resuelto ahora. El problema era un control de carga de terceros que estábamos usando y que agregaba su propio HttpHandler en Web.Config. Este HttpHandler comenzó a fallar en .NET 4.

+0

sólo para comprobarlo, el ajuste del documento predeterminado por entrar en las propiedades del sitio Web, pestaña 'documentos' y adición ' default.aspx 'a la parte superior de la lista? Decir 'documento predeterminado' hace que suene como si estuviera en IIS 7.0 – Kelly

+0

@ Kellls: también podemos establecer el documento predeterminado para IIS 6.0. – Amitabh

+0

@Amitabh: Sí, establecer el documento predeterminado en 6.0 fue el procedimiento que estaba delineando en mi comentario anterior. Solo quiero decir que el 'documento predeterminado' es más un término IIS7.0. En IIS6.0, está etiquetado como "página de contenido predeterminado". Simplemente quería comprobar que estaba usando IIS 6.0. – Kelly

Respuesta

2

Compruebe los registros del servidor, probablemente le darán una mejor idea de lo que está sucediendo.

Puede encontrar la ruta al archivo de registro haciendo clic derecho en el sitio web en IIS y vaya a propiedades. A continuación, vaya a la pestaña Sitio web, en "Habilitar registro", haga clic en Propiedades y aparecerá la ventana de propiedades de registro, que muestra la ruta al archivo de registro.

0

Creo que en 4.0 la configuración de página predeterminada se almacena en el web.config. Con IIS 7.0, IIS lee el archivo web.config para determinar qué hacer con la página predeterminada. Creo que IIS 6.0 no está leyendo la configuración.

28

Con el nuevo .NET 4 framework, surgen algunos problemas si lo ejecuta en IIS 6 Windows Server. IIS 6 no le permite tener más de un marco en el momento en que se ejecuta en la misma instancia, como IIS7, que puede crear grupos de aplicaciones que se dirijan a marcos diferentes. Cuando IIS 6 se ejecuta en ASP.NET 2.0 (3.0 y 3.5 son superconjunto, no marcos) va a ejecutar este error si la aplicación es 4.0 Error de configuración Descripción: Se produjo un error durante el procesamiento de un archivo de configuración requerido para servicio esta solicitud. Revise los detalles de error específicos a continuación y modifique su archivo de configuración de manera adecuada. Mensaje de error del analizador: atributo no reconocido 'targetFramework'. Tenga en cuenta que los nombres de los atributos distinguen mayúsculas de minúsculas

Source Error: 
Line 11:  </configSections> 
Line 12:  <system.web> 
Line 13:   <compilation debug="true" targetFramework="4.0"> 
Line 14:   </compilation> 
Line 15:   <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/> </ system.web> 

Tiene algunas opciones;

  1. Degrade la aplicación .NET a 3.5 que Visual Studio 2010 hace realmente fácil. Vaya a Propiedades del sitio web -> Pestaña Aplicación y hay un menú desplegable con todas las versiones de framework, seleccione 3.5, VS2010 recargará el proyecto y modificará la web.config, si agregó una referencia de servicio web, puede que tenga que eliminarlos y volver a agregarlos en 3.5
  2. Para configurar el IIS6 y la configuración web para resolver el problema. Me ocupo de la segunda parte:

  3. En la consola IIS 6, debe hacer clic con el botón derecho en su proyecto y hacer clic en la propiedad y verificar en la pestaña ASP.Net si está seleccionado Marco 4 o no. Si no, seleccione el marco 4.

Pero aún así puede enfrentar el mismo error debido al grupo de aplicaciones; es posible que tenga el mismo grupo de aplicaciones para dos aplicaciones web de marcos diferentes. IIS 6 no le permite tener más de un marco en el momento en que se ejecuta en la misma instancia (significa que el grupo de aplicaciones individuales no puede usarse para dos marcos diferentes) como IIS7 que puede crear grupos de aplicaciones que se dirijan a marcos diferentes.

  1. Para resolver este problema, necesita crear un grupo de aplicaciones y asignar este grupo de aplicaciones a la aplicación web Framework 4. Para asignar el grupo de aplicaciones, en la consola de IIS abra la sección de propiedades de la aplicación web y haga clic en la pestaña "Directorio de inicio" y en el grupo de aplicaciones de selección que creó anteriormente en la lista desplegable.
  2. Estos dos ahora pueden resolver su problema por completo en algún momento. Puede obtener el error como "No se encuentra la página 404". Aunque ahora puede tener algún problema en el tiempo de desarrollo.
  3. Básicamente, la página no se encuentra, el problema es la causa de otro problema que está oculto por IIS6. Pero necesitas ver la verdadera causa. Lo que tiene que hacer aquí es ir a la consola de IIS6, abrir el "nodo de extensión del servicio web" que está justo debajo del nodo "sitio web predeterminado". Verá toda la lista de marcos de ASP.Net, por defecto estos marcos pueden estar prohibidos, por lo tanto, seleccione ASP.Net Framework 4 y haga clic en el botón de permitir. Navegue en su sitio web ahora, aparece otro error al lado de "No se encuentra la página 404". Puede obtener el error como se detalla a continuación:
  4. El valor para el atributo 'compilerVersion' en las opciones del proveedor debe ser 'v4.0' Aparecerá el siguiente error al explorar el sitio web El valor de 'compilerVersion' El atributo en las opciones del proveedor debe ser 'v4.0' o posterior si está compilando para la versión 4.0 o posterior de .NET Framework. Para compilar esta aplicación web para la versión 3.5 o anterior de .NET Framework, elimine el atributo 'targetFramework' del elemento del archivo Web.config. Para resolver este problema, es necesario modificar el archivo web.config de la siguiente manera:

Anteriormente, el valor se establece como CompilerVersion v3.5 pero ya cambiar nuestra targetFranework a 4. Así, de acuerdo con el mensaje de error anterior el atributo 'compilerVersion' en las opciones del proveedor debe ser 'v4.0' o posterior si está compilando para la versión 4.0 o posterior de .NET Framework.

Hence your new setting will be as below: 

    <providerOption name="CompilerVersion" value="v3.5"/> 

Esperamos que esto solucione su problema de migración y alojamiento de ASP.NET 4 en IIS6.

+0

Gracias por su valiosa solución. Tenía un problema para alojar el sitio .Net4.0 en la configuración de IIS 2.0. director virtual y en Sitio web predeterminado y lo vincula a un grupo de aplicaciones independiente. ¡Funcionó !. – Sunil

+1

thx! el segundo # 3 lo hizo por mí. – Trev

+2

Esto resuelve mi problema: "de forma predeterminada estos marcos pueden estar prohibidos, por lo tanto, seleccione ASP.Net Framework 4 y haga clic en el botón de permitir". Gracias. – Fanda

Cuestiones relacionadas