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.

Mike Nacci
źródło
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.

vcsjones
źródło
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
Kenik
źródło
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

Ankit
źródło
43

W IIS

Kliknij Pule aplikacji

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

Alexander Zaldostanov
źródło
26

W menu Visual Studio:

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

elaiyaraja
źródło
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.

Arsman Ahmad
źródło
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

gm arif
źródło
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

LCJ
źródło
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.
dev.Magdy
źródło
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>
NightShovel
źródło
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

Chưa biết
źródło
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.

Ali Adravi
źródło
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.

Sumanuski
źródło
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.

ergolargo
źródło
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>.

Eldon
źródło
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

Rinoy Ashokan
źródło
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” .

Matt
źródło
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!

Karmić
źródło
0

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

To będzie działać

Vignesh
źródło
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

SharpCoder
źródło
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.

Joe.wang
źródło
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”.

mathijsuitmegen
źródło
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.

obrabować
źródło
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>
intrepidis
źródło
0

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

Cheah Eng Teong
źródło
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ć.
Iman
źródło
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

karthikn2411
źródło
-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.

Paweł
źródło