Nierozpoznany atrybut „targetFramework”. Pamiętaj, że w nazwach atrybutów rozróżniana jest wielkość liter


416

Próbuję załadować moją witrynę i otrzymuję ten komunikat o błędzie:

Nierozpoznany atrybut „targetFramework”. Pamiętaj, że w nazwach atrybutów rozróżniana jest wielkość liter.

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

Witryna działa dobrze na moim komputerze lokalnym, ale nie otwiera się, gdy załaduję ją do mojego hosta i spróbuję wyświetlić online.


Czy nie pokazuje, który plik zawiera to lub gdzie?
Jon Skeet,

2
Czy został wcześniej zbudowany na platformie wcześniejszej niż 4.0? elegantcode.com/2009/11/10/…
Ta01

Ten problem można rozwiązać w wersji 4.0.3. Możesz sprawdzić artykuł KB tutaj. @ mnie i daj mi znać, jeśli to rozwiąże problem, mogę spróbować uzyskać kanoniczne pytanie / odpowiedź na ten błąd i zamknąć kopie. Dzięki.

Kiedy próbuję zainstalować KB2599651 (pobieranie 64-bitowe) na Win 7 x64, pojawia się komunikat o błędzie, że „nie ma zastosowania lub jest zablokowany przez inny warunek na twoim komputerze”. Mam ten sam błąd co OP, mam zainstalowaną platformę 4.0, zarejestrowałem ją w IIS i wybrałem jako pulę aplikacji.
Tim

Czy otworzyłeś w starszej wersji studia wizualnego niż projekt został opracowany? A może został opracowany w Webmatrix, a następnie otwarty w starszym studiu wizualnym?
ruffrey 30.04.13

Odpowiedzi:


610

Zwykle dzieje się tak, gdy masz atrybut targetFramework="4.0"w pliku web.config, ale pula aplikacji jest ustawiona na uruchamianie programu ASP.NET 2.0. targetFrameworkAtrybut jest zupełnie nierozpoznany przez ASP.NET 2.0 - tak zmieniając go do 2.0 nie będą miały pożądanego efektu.

Skontaktuj się z pomocą techniczną / administratorem i ustaw AppPool na 4.0.

Możesz również całkowicie usunąć ten atrybut, jednak jeśli Twoja witryna została zakodowana w ramach 4.0, jestem pewien, że coś innego również spowoduje błąd.


20
Dzięki, to rozwiązało problem, sprawdź ten link krok po kroku, aby
zmienić AppPool

dzięki @ vcsjones..moja strona jest teraz uruchomiona tylko z twojego powodu .. :)
Shiva Pareek

aby dodać do rozwiązania @vcsjones, rejestracja .net 4.0 również może zostać pominięta. Możesz dokonać rejestracji .net 4.0 za pomocą procedury pod tym linkiem, a następnie musisz zamrozić pulę aplikacji do 4.0.
Ram

4
Gdy przejrzałem komunikat o błędzie, znalazłem tę stronę z tym pięknym pytaniem i jeszcze piękniejszą odpowiedzią, którą z pewnością głosowałem kilka miesięcy temu.
Memet Olsen,

81

Rejestracja w IIS działała dla mnie:

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

7
To działa! dla 64bit jest pod C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
Jerry Liang

1
Miałem ten sam problem, ale regiis go nie naprawił - musiałem upuścić i odtworzyć całe drzewo strony i ponownie przypisać pulę dla każdej aplikacji, a teraz działa ...
veljkoz

1
Jeśli jest to nowa wersja IIS (nie ma na niej uruchomionych żadnych innych witryn) lub nie martwisz się, że hostowane witryny zepsują się ze zmianą struktury, możesz użyć -i zamiast -ir podczas rejestracji.
Ram

43

otwórz IIS (wpisz inetmgr w uruchomieniu) i zmień ustawienia puli aplikacji, Aby wyświetlić duży obraz Kliknij prawym przyciskiem myszy obraz i otwórz obraz w nowej karcie wprowadź opis zdjęcia tutaj


43

W IIS

Kliknij Pule aplikacji

Kliknij prawym przyciskiem myszy DefaultAppPool --- >> Ustaw domyślną pulę aplikacji ....--- >> Zmień wersję .Net na V 4.0.


26

W menu Visual Studio:

Strona internetowa -> Opcje uruchamiania -> karta kompilacji -> Wybierz docelową strukturę w polu rozwijanym (.NET FrameWork 4)


lub 4.5 w moim przypadku :)
user230910

co jeśli serwer ma tylko 2.0? należy zainstalować 4.0 / 4.5?
Juran

@ user230910 Gdzie jest ta opcja?
DiegoS

Nie pamiętam jasno, ale myślę, że odnosi się to do IIS
user230910

Działa idealnie dla mnie MAJ 2019 przy użyciu aplikacji formularzy internetowych Visual Studio 2019 na AWS EC2 Windows Server 2019.
Doug Null

12

Napotkałem ten sam problem podczas publikowania moich pierwszych serwisów internetowych. Rozwiązałem to, po prostu robiąc to:

  1. Otwórz IIS

  2. Kliknij Pule aplikacji

  3. Kliknij prawym przyciskiem myszy DefaultAppPool => Ustaw domyślną pulę aplikacji => Zmień wersję .Net na V 4.0. (Możesz również zmienić wersję aplikacji .Net Framework swojej aplikacji)

Mam nadzieję, że zadziała.


9

dla IIS 7 spróbuj zgodnie z podanym obrazem ... oznacz mnie jako pomocnego, jeśli działa dla Ciebie.

wprowadź opis zdjęcia tutaj


8

Musiałem zarejestrować ASP.Net w IIS, aby uzyskać rozwiązanie w Windows Server 2008 R2. Zrzut ekranu poniższych poleceń

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 

wprowadź opis zdjęcia tutaj


5

Zmień pulę aplikacji na docelową strukturę 4.0 zamiast klasycznej.

  1. Strona RC -> zarządzaj witryną-> ustawienia zaawansowane>
  2. pierwsza opcja zmienia się z klasycznej na zintegrowaną z platformą 4.

5

Używam IIS Express zamiast IIS.

Problem był w pliku applicationhost.config znajdującym się w: {folder_produktu} \. Vs \ config \ applicationhost.config.

Jedna z pozycji puli aplikacji miała wartość managedRuntimeVersion „v2.0”. Zmieniłem go na „v4.0” i działało poprawnie.

Jestem całkiem pewien, że główną przyczyną był jeden z pakietów NuGet, które niedawno zainstalowałem.

    <system.applicationHost>
       <applicationPools>
          <add name="BadAppPool1" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
       </applicationPools>
    </system.applicationHost>

2
Fajnie - każdy pojedynczy post wspominał IIS. Korzystałem z IIS Express. Dzięki za poprawkę
PhillyNJ

4

Otwórz projekt -> naciśnij Shift + F4 (Otwórz stronę właściwości) -> Wybierz kompilację -> w Target Framework wybierz .NET Framework 4 -> OK


3

Utwórz nową pulę, wybierając .Net Framework v4.0.3xxxxx

użyj trybu Zarządzaj potokiem: zintegrowany

Przypisz go do swojej witryny i gotowe.


2

Aby rozwiązać ten problem, po prostu kliknij ikonę wersji ASP.NET w sekcji Narzędzia witryny w Panelu sterowania, aby przełączyć strukturę na 4.0.


2

Miałem ten błąd z nieudanej kompilacji MSBuild , w pliku projektu przekonwertowanym z wcześniejszej wersji VS na VS2010 i .NET 4.0. W rzeczywistości był to projekt wdrożenia internetowego, a rozwiązaniem, które działało dla mnie, było dodanie następujących wpisów do sekcji PropertyGroup na początku pliku MSBuild :

<ProductVersion>10.0.11107</ProductVersion>

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Być może są one automatycznie aktualizowane, gdy inne typy projektów są konwertowane w VS2010, ale brakowało ich w pliku projektu Web Deployment po jego konwersji.


2

Co zrobiłem: zmieniłem wartość puli aplikacji na DefaultAppPool z poprzedniej wartości. Robisz to w Ustawieniach zaawansowanych (Strona internetowa -> Zarządzaj witryną -> Ustawienia zaawansowane>.


2

Ten sam problem wystąpił także podczas lokalnego uruchamiania mojej aplikacji, co wskazuje na .Net Framework 4.7.1. Błąd to „ Nierozpoznany atrybut TargetFrameWork ”, jak pokazano poniżej. wprowadź opis zdjęcia tutaj

Ale żadna z powyższych odpowiedzi mi nie pomogła. W końcu, kiedy zmieniłem mój obecny numer portu (1413) na inną wartość (60179), jak pokazano poniżej, działało to dobrze dla mnie, ale nie jestem pewien z tego powodu, ale zadziałało.

wprowadź opis zdjęcia tutaj


Właśnie weryfikuję, że miałem dokładnie ten błąd, i próbowałem po prostu zmienić port, jak wskazano w tej odpowiedzi. Korzystam z klienta testowego WCF, aby uruchomić tę usługę na localhost. Po zmianie numeru portu usługa mogła zostać uruchomiona. Dziękuje za twoją sugestię.
Evan

Po wypróbowaniu wszystkich sugestii tylko ten rozwiązał mój problem. Dziękuję bardzo.
Prabo

Serdecznie witam @Prabo, jeśli to możliwe, pomóżcie mi w głosowaniu na UP
Rinoy Ashokan,

Serdecznie witam @Evan, jeśli to możliwe, pomóżcie mi w głosowaniu na UP
Rinoy Ashokan,

1

Właśnie miałem to w VS 2010.

Naprawiono przez edycję pliku .sln i zmianę TargetFrameworkMoniker, aby przypisano mu wartość „.NETFramework, wersja% 3Dv4.0” .


0

Jeśli skompilujesz pliki, a wartość „targetFramework” zostanie ustawiona jako konkretna wersja, tj. 4.0,

Upewnij się, że host działa w środowisku .net zgodnie z podaną tą samą wersją.

Jeśli nie, pobierz .NET Framework.

Po pobraniu, jeśli nie jest automatyczne ustawianie w menedżerze IIS korzystania z rozszerzenia nowo pobranej wersji środowiska .net,

dodaj rozszerzenie ręcznie, przechodząc do folderu ostatnio pobranego środowiska .NET przez menedżera IIS:

1. kliknij folder strony prawym przyciskiem myszy

2. przejdź do „Właściwości”

3. w „katalogu wirtualnym” kliknij „konfiguracja”

4. edytuj wykonywalną ścieżkę rozszerzenia „.aspx” (której ścieżka wskazuje na wersję inną niż wersja ostatnio pobranego frameworku .net) do właściwej ścieżki, która jest folderem NOWO pobranej wersji frameworka .net a następnie wybierz plik „aspnet_isapi.dll”.

5. kliknij OK!


0

Wystarczy usunąć „Target Framework 4.0” i zamknąć wspornik.

To będzie działać


0

Wykonaj następujące dwa kroki:

Zarejestruj wersję .NET Framework w wersji 4.0 (jeśli nie jest zarejestrowana)

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

  2. W puli aplikacji zmień środowisko .net na v4.0


0

Jeśli zainstalujesz IIS po instalacji .Net FrameWork. Musisz ponownie zainstalować .NET Framework dla IIS. Więc wszystko, co musimy zrobić, to uruchomić aspnet_regiis -i. Mam nadzieję, że to jest pomocne.


0

Zobaczył błąd „Nierozpoznany atrybut„ targetFramework ”na stronie„ Wyjście konsoli ”Jenkinsa na serwerze kompilacji. Było to po zmianie „docelowej struktury” dla kilku projektów z „.NET Framework 3.5” na „.NET Framework 4” i zatwierdzeniu moich zmian.

W Jenkins ustawienia projektu musiały zostać zmienione. W przypadku rozwiązania „MSBuild Version” musiała zostać zmieniona z „v3.5” na „v4.0”.


0

Właśnie ten problem polegał na wdrażaniu nowej aplikacji na starym urządzeniu IIS. Badanie doprowadziło do zainstalowania środowiska wykonawczego wer. 4.5.1, ale aplikacja wymagająca wer

Nie wymagano niczego poza instalacją poprawnej wersji środowiska wykonawczego ASP .Net.


0

Możliwe, że masz własny plik proj MSBUILD i korzystasz z <AspNetCompiler>zadania. W takim przypadku należy dodać ToolPathplik .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

Dla warstw, wystarczy zmienić wersję targetFramework tylko w pliku web.config, inne rzeczy nie wymagają zmiany.



0

wykonanie 2 kroków wymusi odświeżenie pamięci podręcznej Visual Studio i IIS Express i zwykle rozwiąże moje podobne problemy:

  1. Po prostu zmień Framework projektu z 4+ na .Net Framework 3.5 i uruchom go
  2. Jeśli uruchomił się pomyślnie, możesz przywrócić go z powrotem do pożądanej struktury docelowej 4+ i przekonać się, że prawdopodobnie znowu będzie działać.

0

Zmiana numeru portu dla rozwoju lokalnego pomogła mi Dzięki @Rinay Ashokan. Zrobiłem wszystkie kłopoty i w końcu odkryłem, że konfiguracje projektu są przechowywane w IIS express dla numeru portu. wprowadź opis zdjęcia tutaj


-1

Dla każdego, kto nie ma IIS uruchomionych na swoim komputerze deweloperskim, oto, co mi się przydarzyło: miałem jedną stronę internetową, nadpisaną plikami z witryny diff, która miała 4, podczas gdy poprzednia była 3.5. Mam ten błąd. Naprawiono to po prostu poprzez zmianę nazwy katalogu strony internetowej, która na komputerze deweloperskim może być dowolna, więc nie ma problemu. Powyższe są zapewne bardziej eleganckie, ale czasami proste prace, JEŚLI możesz to zrobić, tj. Jesteś w dev, a nie QA lub Prod.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.