Atributo no reconocido 'targetFramework'. Tenga en cuenta que los nombres de los atributos distinguen entre mayúsculas y minúsculas

416

Estoy intentando cargar mi sitio y recibo este mensaje de error:

Atributo no reconocido 'targetFramework'. Tenga en cuenta que los nombres de los atributos distinguen entre mayúsculas y minúsculas.

<compilation debug="true" targetFramework="4.0">

El sitio funciona bien en mi PC local, pero no se abre cuando lo cargué en mi host e intenté verlo en línea.

Mike Nacci
fuente
¿No muestra qué archivo contiene eso o dónde?
Jon Skeet
2
¿Fue construido previamente en el marco pre 4.0? elegantcode.com/2009/11/10/…
Ta01
Este problema puede resolverse en 4.0.3. Puede consultar el artículo de KB aquí. @ mí y avíseme si esto soluciona su problema, puedo intentar obtener una pregunta / respuesta canónica para este error y cerrar engaños. Gracias.
Cuando intento instalar KB2599651 (descarga de 64 bits) en Win 7 x64, recibo el mensaje de error de que "no se aplica o está bloqueado por otra condición en su computadora". Tengo el mismo error que OP, tengo instalado Framework 4.0 y lo he registrado con IIS, y lo he elegido como el grupo de aplicaciones.
Tim
¿Abriste en una versión anterior de Visual Studio en la que se desarrolló el proyecto? ¿O se desarrolló en Webmatrix y luego se abrió en un estudio visual más antiguo?
ruffrey

Respuestas:

610

Esto suele ocurrir cuando tiene un atributo de targetFramework="4.0"en web.config pero el grupo de aplicaciones está configurado para ejecutar ASP.NET 2.0. El targetFrameworkatributo se enteramente no reconocido por ASP.NET 2.0 - por lo que cambiar a 2.0 no tendrá el efecto deseado.

Póngase en contacto con Soporte / Su administrador y cambie el AppPool a 4.0.

También puede eliminar el atributo por completo, sin embargo, si su sitio se codificó con el Framework 4.0, entonces estoy seguro de que algo más también causará un error.

vcsjones
fuente
20
Gracias, esto resolvió el problema, consulte este enlace para obtener una guía paso a paso para cambiar su AppPool a 4.0: stackoverflow.com/questions/4890245/…
user1010572
gracias @ vcsjones..mi sitio web ahora está en funcionamiento solo por ti .. :)
Shiva Pareek
solo para agregar a la solución @vcsjones, también se puede perder el registro de .net 4.0. Puede hacer el registro de .net 4.0 usando el procedimiento en este enlace y luego necesita cambiar el grupo de aplicaciones a 4.0.
Ram
44
Cuando busqué en Google el mensaje de error, encontré esta página, con esta hermosa pregunta e incluso una respuesta más hermosa, que ya voté hace meses.
Memet Olsen
81

El registro del marco con IIS es lo que funcionó para mí:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i
kenik
fuente
77
¡Esto funciona! para 64 bits está en C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
Jerry Liang el
1
Tuve el mismo problema, pero la región no lo solucionó: tuve que soltar y recrear todo el árbol del sitio web y reasignar el grupo para cada aplicación, y ahora funciona ...
veljkoz
1
Si se trata de una versión nueva de IIS (no hay otros sitios que se ejecuten en él) o si no le preocupa que los sitios alojados rompan con un cambio de marco, puede usar -i en lugar de -ir al registrarse.
Ram
44

En IIS

Haga clic en Grupos de aplicaciones

Haga clic derecho en DefaultAppPool --- >> Establecer el grupo de aplicaciones predeterminado ....--- >> Cambie la versión .Net a V 4.0.

Alexander Zaldostanov
fuente
43

abra su IIS (escriba inetmgr en ejecución) y cambie la configuración del grupo de aplicaciones. Para ver esta imagen grande, haga clic con el botón derecho en la imagen y abra la imagen en una pestaña nueva ingrese la descripción de la imagen aquí

Ankit
fuente
26

En el menú de Visual Studio:

Sitio web -> Opciones de inicio -> pestaña de compilación -> Seleccionar marco de destino en el cuadro desplegable (.NET FrameWork 4)

elaiyaraja
fuente
o 4.5 en mi caso :)
user230910
¿Qué pasa si el servidor solo tiene 2.0? debería ser necesario instalar 4.0 / 4.5 ??
Juran
@ user230910 ¿Dónde está esa opción?
DiegoS
No puedo recordar con claridad, pero creo que esto se refiere a IIS
user230910
Funcionó perfecto para mí MAYO 2019 utilizando la aplicación de formularios web Visual Studio 2019 en AWS EC2 Windows Server 2019.
Doug Null
12

Estaba enfrentando el mismo problema mientras publicaba mis primeros servicios web. Lo resolví simplemente haciendo esto:

  1. Abrir IIS

  2. Haga clic en Grupos de aplicaciones

  3. Haga clic derecho en DefaultAppPool => Establecer el grupo de aplicaciones predeterminado => Cambiar la versión .Net a V 4.0. (También puede cambiar la versión de .Net Framework de su aplicación específicamente)

Espero que funcione.

Arsman Ahmad
fuente
9

para IIS 7 intente de acuerdo con la imagen dada ... márqueme útil si funciona para usted.

ingrese la descripción de la imagen aquí

gm arif
fuente
8

Tuve que registrar ASP.Net en IIS para resolverlo en Windows Server 2008 R2. Captura de pantalla de los comandos adjuntos a continuación

cd /d C:\Windows\Microsoft.NET\Framework\v4.0.30319

iisreset /stop

aspnet_regiis -i

iisreset /start

%systemroot%\system32\inetsrv\appcmd set config /section:isapiCgiRestriction /[path='%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll'].allowed:True 

%systemroot%\system32\inetsrv\appcmd set config /section:isapiCgiRestriction /[path='%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll'].allowed:True 

ingrese la descripción de la imagen aquí

LCJ
fuente
5

Cambie el grupo de aplicaciones a Target Framework 4.0 en lugar de Classic.

  1. Sitio web de RC -> administrar sitio web-> configuración avanzada>
  2. La primera opción cambia de clásico a framework 4 integrado.
dev.Magdy
fuente
5

Estoy usando IIS Express, en lugar de IIS.

El problema estaba en el archivo applicationhost.config ubicado en: {solution_folder} \. Vs \ config \ applicationhost.config.

Una de las entradas del grupo de aplicaciones tenía un valor managedRuntimeVersion de "v2.0". Lo cambié a "v4.0" y funcionó correctamente.

Estoy bastante seguro de que la causa raíz fue uno de los paquetes NuGet que instalé recientemente.

    <system.applicationHost>
       <applicationPools>
          <add name="BadAppPool1" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
       </applicationPools>
    </system.applicationHost>
NightShovel
fuente
2
Agradable, cada publicación mencionó IIS. Estaba usando IIS Express. Gracias por la solución
PhillyNJ
4

Abra Proyecto -> presione Mayús + F4 (Abrir página de propiedades) -> Elegir compilación -> en Target Framework, elija .NET Framework 4 -> Aceptar

Chưa biết
fuente
3

Cree un nuevo grupo seleccionando .Net Framework v4.0.3xxxxx

utilice el modo de gestión de canalización: integrado

Asignarlo a su sitio y listo.

Ali Adravi
fuente
2

Para solucionar este problema, simplemente haga clic en el icono Versión ASP.NET en la sección Herramientas del sitio del Panel de control para cambiar el marco a 4.0.

Sumanuski
fuente
2

Recibí este error de una compilación fallida de MSBuild , en un archivo de proyecto convertido de una versión anterior de VS a VS2010 y .NET 4.0. En realidad, fue un proyecto de implementación web, y la solución que funcionó para mí fue agregar las siguientes entradas en la sección PropertyGroup al comienzo del archivo MSBuild :

<ProductVersion>10.0.11107</ProductVersion>

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Quizás estos se actualizan automáticamente cuando se convierten otros tipos de proyectos en VS2010, pero faltaban en mi archivo de proyecto de implementación web después de que se convirtió.

ergolargo
fuente
2

Lo que hice: cambié el valor de Application Pool a DefaultAppPool de un valor anterior. Esto se hace en la Configuración avanzada (Sitio web -> Administrar sitio web -> Configuración avanzada>.

Eldon
fuente
2

También tuve el mismo problema al ejecutar mi aplicación localmente, que apunta a .Net Framework 4.7.1. El error fue " Atributo no reconocido TargetFrameWork " como se muestra a continuación. ingrese la descripción de la imagen aquí

Pero ninguna de las respuestas anteriores me ayudó. Finalmente, cuando cambié mi número de puerto actual (1413) a otro valor (60179) como se muestra a continuación, funcionó bien para mí, pero no estoy seguro de la razón real detrás de esto, pero funcionó.

ingrese la descripción de la imagen aquí

Rinoy Ashokan
fuente
Solo estoy verificando que he tenido este error exacto, e intenté simplemente cambiar el puerto como se indica en esta respuesta. Estoy ejecutando WCF Test Client para iniciar este servicio en localhost. Después de cambiar el número de puerto, el servicio pudo iniciarse. Gracias por su sugerencia.
Evan
Después de probar todas las sugerencias, solo esta resolvió mi problema. Muchas gracias.
Prabo
De nada @Prabo si es posible, por favor, ayúdenme con el voto UP
Rinoy Ashokan
De nada @Evan si es posible por favor ayúdenme con el voto UP
Rinoy Ashokan
1

Acabo de tener esto en VS 2010.

Se corrigió editando el archivo .sln y cambiando TargetFrameworkMoniker para que se le asignara el valor ".NETFramework, Version% 3Dv4.0" .

Mate
fuente
0

Si compila los archivos y el valor del "targetFramework" se establece como una versión particular, es decir, 4.0,

Asegúrese de que el host esté ejecutando .net framework como la misma versión indicada.

Si no, descargue el framework .net.

Después de la descarga, si no se configura automáticamente en el administrador de IIS para usar la extensión de la versión recién descargada de .net framework,

agregue la extensión manualmente yendo a la carpeta del .net framework recientemente descargado A TRAVÉS del administrador IIS:

1. Haga clic derecho en la carpeta del sitio web

2. ir a "Propiedades"

3. bajo "directorio virtual", haga clic en "configuración"

4. Edite la ruta ejecutable de la extensión ".aspx" (de la cual la ruta apunta a una versión que no sea la versión del .net framework recientemente descargado) a la ruta correcta que es la carpeta de la versión RECIENTEMENTE descargada del framework .net y luego seleccione el archivo "aspnet_isapi.dll".

5.haga clic en ok!

Alimentar
fuente
0

Simplemente quite el "Target Framework 4.0" y cierre el soporte.

Funcionará

Vignesh
fuente
0

Sigue estos dos pasos:

Registre la versión 4.0 de .NET Framework (si no está registrada)

  1. C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319> aspnet_regiis -i

  2. En el grupo de aplicaciones, cambie el marco .net a v4.0

SharpCoder
fuente
0

Si instala el IIS después de la instalación de .Net FrameWork. Necesita instalar .NET Framework nuevamente para IIS. Entonces, todo lo que tenemos que hacer es correr aspnet_regiis -i. Espero que sea útil.

Joe.wang
fuente
0

Vio el error "Atributo no reconocido 'targetFramework'" en la página 'Salida de consola' de Jenkins en un servidor de compilación. Esto fue después de que cambié el 'marco de destino' para varios proyectos de '.NET Framework 3.5' a '.NET Framework 4' y comprometí mis cambios.

En Jenkins, la configuración del proyecto tuvo que ser cambiada. Para la solución, la 'Versión de MSBuild' tuvo que cambiarse de 'v3.5' a 'v4.0'.

mathijsuitmegen
fuente
0

Acabo de tener este problema al implementar una nueva aplicación en un antiguo cuadro de IIS. La investigación condujo a la instalación del tiempo de ejecución v4.5.1 pero la aplicación requirió v4.5.2

No se requería nada más que instalar la versión correcta del tiempo de ejecución ASP .Net.

robar
fuente
0

Puede ser que tenga su propio archivo de proyecto MSBUILD y esté utilizando la <AspNetCompiler>tarea. En cuyo caso, debe agregar el ToolPath.NET4.

<AspNetCompiler
    VirtualPath="/MyFacade"
    PhysicalPath="$(MSBuildProjectDirectory)\MyFacade\"
    TargetPath="$(MSBuildProjectDirectory)\Release\MyFacade"
    Updateable="true"
    Force="true"
    Debug="false"
    Clean="true"
    ToolPath="C:\Windows\Microsoft.NET\Framework\v4.0.30319\">      
</AspNetCompiler>
intrepidis
fuente
0

Para las capas, solo cambie la versión de targetFramework en el archivo web.config solamente, las otras cosas no necesitan cambiar.

Cheah Eng Teong
fuente
0

Los siguientes 2 pasos obligarán a actualizar la memoria caché de Visual Studio e IIS Express y, por lo general, resolverán mis problemas similares:

  1. Simplemente cambie Project framework de 4+ a .Net framework 3.5 y ejecútelo
  2. Si se ejecutó correctamente, puede volver a su marco de destino 4+ deseado y ver que probablemente funcionará nuevamente.
Iman
fuente
0

Cambiar el número de puerto para el desarrollo local me ayudó. Gracias @Rinay Ashokan. He solucionado todos los problemas y finalmente descubrí que las configuraciones del proyecto se almacenan en el IIS express para el número de puerto. ingrese la descripción de la imagen aquí

karthikn2411
fuente
-1

Para cualquiera que tenga esto que no tenga IIS ejecutándose en su PC de desarrollo, esto es lo que me sucedió: tenía un sitio web encendido, sobrescrito con archivos de un sitio web diff que era 4 mientras que el anterior era 3.5. Tengo este error Lo solucionó simplemente cambiando el nombre del directorio del sitio web, que en una PC de desarrollo puede ser cualquier cosa, así que no hay problema. Es probable que lo anterior sea más elegante, pero a veces funciona de manera simple, SI puedes salirte con la tuya, es decir, estás en desarrollo en lugar de QA o Prod.

Pablo
fuente