Atributo não reconhecido 'targetFramework'. Observe que os nomes dos atributos diferenciam maiúsculas de minúsculas

416

Estou tentando carregar meu site e estou recebendo esta mensagem de erro:

Atributo não reconhecido 'targetFramework'. Observe que os nomes dos atributos diferenciam maiúsculas de minúsculas.

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

O site funciona bem no meu PC local, mas não abre quando eu carrego no meu host e tentei visualizá-lo online.

Mike Nacci
fonte
Não mostra qual arquivo contém isso ou onde?
Jon tiro ao prato
2
Foi construído anteriormente na estrutura anterior à 4.0? elegantcode.com/2009/11/10/…
Ta01 23/09
Esse problema pode ser resolvido no 4.0.3. Você pode conferir o artigo da base de conhecimento aqui. @ me e deixe-me saber se isso resolver o seu problema, talvez eu tente obter uma pergunta / resposta canônica para esse erro e feche o dupes. Obrigado.
Quando tento instalar o KB2599651 (download de 64 bits) no Windows 7 x64, recebo a mensagem de erro "Não se aplica ou está bloqueado por outra condição no seu computador". Eu tenho o mesmo erro que o OP, tenho o framework 4.0 instalado e o registrei no IIS e o escolhi como o Pool de Aplicativos.
Tim
Você abriu em uma versão mais antiga do visual studio do que o projeto foi desenvolvido? Ou foi desenvolvido no Webmatrix e aberto em um estúdio visual mais antigo?
Ruffrey

Respostas:

610

Isso normalmente acontece quando você tem um atributo targetFramework="4.0"no web.config, mas o pool de aplicativos está definido para executar o ASP.NET 2.0. O targetFrameworkatributo é totalmente não reconhecido pelo ASP.NET 2.0 - portanto, alterá-lo para 2.0 não terá o efeito desejado.

Entre em contato com o Suporte / Seu administrador e mude o AppPool para 4.0.

Você também pode remover o atributo completamente; no entanto, se o seu site foi codificado com o 4.0 Framework, tenho certeza de que alguma outra coisa também causará um erro.

vcsjones
fonte
20
Obrigado, isso resolveu o problema, verifique este link para obter um guia passo a passo para que o AppPool
mude
graças @ website vcsjones..my está agora instalado e funcionando apenas por causa de você .. :)
Shiva Pareek
apenas para adicionar à solução @vcsjones o registro do .net 4.0 também pode ser esquecido. Você pode fazer o registro do .net 4.0 usando o procedimento neste link e precisar alterar o pool de aplicativos para 4.0.
Ram
4
Quando pesquisei a mensagem de erro no Google, encontrei esta página, com essa pergunta bonita e até uma resposta mais bonita, que eu já havia votado há meses.
Memet Olsen
81

O registro da estrutura no IIS foi o que funcionou para mim:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i
kenik
fonte
7
Isso funciona! para 64 bits está em C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
Jerry Liang
1
Eu tive o mesmo problema, mas os regiis não corrigi-lo - Eu tive que largar e recriar toda a árvore de site e atribuir novamente a piscina para cada aplicativo, e agora ele funciona ...
veljkoz
1
Se esta é uma versão nova do IIS (nenhum outro site está sendo executado) ou se você não está preocupado com os sites hospedados com uma alteração na estrutura, use -i em vez de -ir durante o registro.
Ram
44

No IIS

Clique em Pools de aplicativos

Clique com o botão direito do mouse em DefaultAppPool --- >> Definir padrão do pool de aplicativos ....--- >> Altere a versão .Net para V 4.0.

Alexander Zaldostanov
fonte
43

abra o IIS (digite inetmgr em execução) e altere a configuração do pool de aplicativos. Para exibir esta imagem grande, clique com o botão direito do mouse na imagem e abra a imagem em uma nova guia insira a descrição da imagem aqui

Ankit
fonte
26

No menu do Visual Studio:

Site -> Opções de Início -> guia compilar -> Selecionar Estrutura de Destino na caixa suspensa (.NET FrameWork 4)

elaiyaraja
fonte
ou 4,5 no meu caso :)
user230910
e se o servidor tiver apenas 2.0? deve necessário instalar 4.0 / 4.5 ??
Juran
@ user230910 Onde está essa opção?
precisa saber é
Eu não consigo lembrar claramente, mas eu acho que isso está se referindo ao IIS
user230910
Trabalhou perfeito para mim de Maio de 2019 usando o Visual Studio 2019 formulários web app no AWS EC2 Windows Server 2019.
Doug Null
12

Eu estava enfrentando o mesmo problema ao publicar meus primeiros serviços da web. Eu resolvi isso simplesmente fazendo o seguinte:

  1. Abra o IIS

  2. Clique em Pools de aplicativos

  3. Clique com o botão direito do mouse em DefaultAppPool => Definir padrão do pool de aplicativos => Alterar versão .Net para V 4.0. (Você também pode alterar a versão do .Net Framework de seu aplicativo especificamente)

Espero que funcione.

Arsman Ahmad
fonte
9

para o IIS 7, tente de acordo com a imagem fornecida ... marque-me como útil se funcionar para você.

insira a descrição da imagem aqui

gm arif
fonte
8

Eu tive que registrar o ASP.Net no IIS para resolvê-lo no Windows Server 2008 R2. Capturas de tela dos comandos abaixo

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 

insira a descrição da imagem aqui

LCJ
fonte
5

Altere o pool de aplicativos para direcionar a estrutura 4.0 em vez da clássica.

  1. Site RC -> gerenciar site -> configuração avançada>
  2. a primeira opção muda do clássico para o framework 4 integrado.
dev.Magdy
fonte
5

Estou usando o IIS Express, em vez do IIS.

O problema estava no arquivo applicationhost.config localizado em: {solution_folder} \. Vs \ config \ applicationhost.config.

Uma das entradas do pool de aplicativos tinha um valor managedRuntimeVersion de "v2.0". Mudei para "v4.0" e funcionou corretamente.

Tenho certeza de que a causa raiz foi um dos pacotes NuGet que eu havia instalado recentemente.

    <system.applicationHost>
       <applicationPools>
          <add name="BadAppPool1" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
       </applicationPools>
    </system.applicationHost>
NightShovel
fonte
2
Bom, cada post mencionado no IIS. Eu estava usando o IIS Express. Thx para a correção
PhillyNJ
4

Abra Projeto -> pressione Shift + F4 (Abrir página de propriedades) -> Escolha Build -> no Target Framework escolha .NET Framework 4 -> OK

Chưa biết
fonte
3

Crie um novo pool selecionando .Net Framework v4.0.3xxxxx

use o modo Gerenciar pipeline: integrado

Atribua-o ao seu site e pronto.

Ali Adravi
fonte
2

Para corrigir esse problema, clique no ícone Versão do ASP.NET na seção Ferramentas do Site do Painel de Controle para mudar a estrutura para 4.0.

Sumanuski
fonte
2

Eu tive esse erro de uma compilação com falha do MSBuild , em um arquivo de projeto convertido de uma versão anterior do VS para o VS2010 e .NET 4.0. Na verdade, era um projeto de implantação da Web, e a solução que funcionou para mim foi adicionar as seguintes entradas na seção PropertyGroup no início do arquivo MSBuild :

<ProductVersion>10.0.11107</ProductVersion>

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Talvez eles sejam atualizados automaticamente quando outros tipos de projeto são convertidos no VS2010, mas estavam ausentes no meu arquivo de projeto de implantação da Web após a conversão.

ergolargo
fonte
2

O que fiz: alterei o valor do Pool de aplicativos para DefaultAppPool a partir de um valor anterior. Você faz isso nas Configurações avançadas (Site -> Gerenciar site -> Configuração avançada>.

Eldon
fonte
2

Eu também tive o mesmo problema ao executar meu aplicativo localmente, o que aponta para o .NET Framework 4.7.1. O erro foi " Atributo não reconhecido TargetFrameWork ", como mostrado abaixo. insira a descrição da imagem aqui

Mas nenhuma das respostas acima me ajudou. Finalmente, quando alterei meu número da porta atual (1413) para outro valor (60179), como mostrado abaixo, funcionou bem para mim. Mas não tenho certeza do motivo real por trás disso, mas funcionou.

insira a descrição da imagem aqui

Rinoy Ashokan
fonte
Estou apenas verificando se tive esse erro exato e tentei simplesmente alterar a porta conforme indicado nesta resposta. Estou executando o WCF Test Client para iniciar este serviço no host local. Depois de alterar o número da porta, o serviço pôde iniciar. Obrigado pela sua sugestão.
Evan
Depois de tentar todas as sugestões, apenas este resolveu o meu problema. Muito obrigado.
Prabo
Seja bem-vindo @Prabo se possível pls me ajudar com o voto UP
Rinoy Ashokan
Seja bem-vindo @Evan se possível pls me ajudar com o voto UP
Rinoy Ashokan
1

Só tive isso no VS 2010.

Corrigido editando o arquivo .sln e alterando o TargetFrameworkMoniker para ter o valor ".NETFramework, versão% 3Dv4.0" atribuído a ele.

Matt
fonte
0

Se você compilar os arquivos e o valor de "targetFramework" for definido como sendo uma versão específica, ou seja, 4.0,

Verifique se o host está executando a estrutura .net como a mesma versão declarada.

Caso contrário, baixe a estrutura .net.

Após o download, se não for definido automaticamente no gerenciador do IIS a extensão da versão da estrutura .net recém-baixada,

adicione a extensão manualmente, indo para a pasta da estrutura .net baixada recentemente através do gerenciador do IIS:

1. clique com o botão direito do mouse na pasta do site

2. vá para "Propriedades"

3. sob "diretório virtual", clique em "configuração"

4.edite o caminho executável da extensão ".aspx" (cujo caminho está sendo apontado para uma versão diferente da versão da estrutura .net baixada recentemente) para o caminho correto, que é a pasta da versão baixada recentemente da estrutura .net e selecione o arquivo "aspnet_isapi.dll".

5.clique em ok!

Alimentação
fonte
0

Basta remover o "Target Framework 4.0" e fechar o suporte.

Vai funcionar

Vignesh
fonte
0

Siga estes dois passos:

Registre o .net framework versão 4.0 (se não estiver registrado)

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

  2. No pool de aplicativos, altere a estrutura .net para v4.0

SharpCoder
fonte
0

Se você instalar o IIS após a instalação do .Net FrameWork. Você precisa instalar a estrutura .net novamente para o IIS. Então, tudo o que precisamos fazer é correr aspnet_regiis -i. Espero que seja útil.

Joe.wang
fonte
0

Vi o erro "Atributo não reconhecido 'targetFramework'" na página 'Saída do console' do Jenkins em um servidor de construção. Isso foi depois que eu mudei a 'estrutura de destino' para vários projetos de '.NET Framework 3.5' para '.NET Framework 4' e confirmei minhas alterações.

Em Jenkins, as configurações do projeto tiveram que ser alteradas. Para a solução, a 'Versão do MSBuild' teve que ser alterada de 'v3.5' para 'v4.0'.

mathijsuitmegen
fonte
0

Só tive esse problema ao implantar um novo aplicativo em uma caixa antiga do IIS. A investigação levou à instalação do tempo de execução da v4.5.1, mas o aplicativo requer a v4.5.2

Nada além de instalar a versão correta do tempo de execução do ASP .Net era necessário.

roubar
fonte
0

Pode ser que você tenha seu próprio arquivo de projeto MSBUILD e esteja usando a <AspNetCompiler>tarefa. Nesse caso, você deve adicionar o ToolPathpara .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
fonte
0

Para camadas, basta alterar a versão do targetFramework apenas no arquivo web.config, as outras coisas não precisam ser alteradas.

Cheah Eng Teong
fonte
0

as 2 etapas a seguir forçarão a atualização do cache do Visual Studio e do IIS Express e geralmente resolverão meus problemas semelhantes:

  1. Simplesmente mude a estrutura do projeto de 4+ para a .Net framework 3.5 e execute-a
  2. Se ele foi executado com êxito, você pode revertê-lo para a estrutura de destino 4+ desejada e verificar se provavelmente funcionará novamente.
Iman
fonte
0

Alterar o número da porta para o desenvolvimento local me ajudou. Obrigado @Rinay Ashokan. Fiz todos os problemas e finalmente descobri que as configurações do projeto estão armazenadas no IIS Express para o número da porta. insira a descrição da imagem aqui

karthikn2411
fonte
-1

Para quem tem esse que não tem o IIS em execução no PC de desenvolvimento, eis o que aconteceu comigo: eu tinha um site, sobrescrito com arquivos de um site diff que tinha 4 anos, enquanto o anterior era 3,5. Este erro foi encontrado. Corrigido simplesmente alterando o nome do diretório do site, que em um PC de desenvolvimento pode ser qualquer coisa, então não há problema. As opções acima são provavelmente mais elegantes, com certeza, mas, às vezes, trabalhos simples, se você puder se safar, ou seja, você está no desenvolvimento, em vez do controle de qualidade ou do produto.

Paulo
fonte