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.


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.


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

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.


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


26

No menu do Visual Studio:

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


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.


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


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


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.

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>

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


3

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

use o modo Gerenciar pipeline: integrado

Atribua-o ao seu site e pronto.


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.


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.


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>.


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


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.


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!


0

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

Vai funcionar


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


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.


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'.


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.


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>

0

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



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.

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


-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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.