Atribut 'targetFramework' yang tidak dikenal. Perhatikan bahwa nama atribut peka huruf besar-kecil

416

Saya mencoba memuat situs saya dan saya menerima pesan kesalahan ini:

Atribut 'targetFramework' yang tidak dikenal. Perhatikan bahwa nama atribut peka huruf besar-kecil.

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

Situs berfungsi dengan baik pada PC lokal saya tetapi tidak akan terbuka ketika saya memuatnya ke host saya dan mencoba melihatnya secara online.

Mike Nacci
sumber
Apakah itu tidak menunjukkan file mana yang berisi itu atau di mana?
Jon Skeet
2
Apakah sebelumnya dibangun di atas kerangka kerja 4.0 4.0? elegantcode.com/2009/11/10/…
Ta01
Masalah ini dapat diatasi oleh 4.0.3. Anda dapat melihat artikel KB di sini. @ saya dan beri tahu saya jika ini memperbaiki masalah Anda, saya dapat mencoba mendapatkan pertanyaan / jawaban kanonik untuk kesalahan ini dan menutup dupes. Terima kasih.
Ketika saya mencoba menginstal KB2599651 (unduhan 64-bit) pada Win 7 x64, saya mendapatkan pesan kesalahan bahwa itu "tidak berlaku atau diblokir oleh kondisi lain di komputer Anda". Saya memiliki kesalahan yang sama dengan OP, memiliki kerangka kerja 4.0 diinstal dan telah mendaftarkannya dengan IIS, dan telah memilihnya sebagai Application Pool.
Tim
Apakah Anda membuka di studio visual versi yang lebih lama daripada proyek dikembangkan? Atau dikembangkan di Webmatrix dan kemudian dibuka di studio visual yang lebih lama?
ruffrey

Jawaban:

610

Ini biasanya terjadi ketika Anda memiliki atribut targetFramework="4.0"di web.config tetapi App Pool diatur untuk menjalankan ASP.NET 2.0. The targetFrameworkatribut seluruhnya tidak dikenal oleh ASP.NET 2.0 - sehingga mengubahnya menjadi 2,0 tidak akan memiliki efek yang diinginkan.

Hubungi Dukungan / Administrator Anda dan minta AppPool beralih ke 4.0.

Anda juga dapat menghapus atribut sepenuhnya, namun jika situs Anda dikodekan dengan Kerangka 4.0, maka saya yakin sesuatu yang lain akan menyebabkan kesalahan juga.

vcsjones
sumber
20
Terima kasih, ini menyelesaikan masalah, periksa tautan ini untuk panduan langkah demi langkah agar AppPool Anda beralih ke 4.0: stackoverflow.com/questions/4890245/…
user1010572
terima kasih @ vcsjones..situs web saya sekarang berjalan dan berjalan hanya karena Anda .. :)
Shiva Pareek
hanya dengan menambahkan solusi @vcsjones yang mendaftar .net 4.0 mungkin juga terlewatkan. Anda dapat melakukan pendaftaran .net 4.0 menggunakan prosedur di tautan ini dan kemudian Anda perlu menambahkan kumpulan aplikasi ke 4.0.
Ram
4
Ketika saya mencari pesan kesalahan di Google, saya menemukan halaman ini, dengan pertanyaan yang indah ini dan bahkan jawaban yang lebih indah, yang saya undur beberapa bulan lalu.
Memet Olsen
81

Mendaftarkan kerangka kerja dengan IIS adalah yang berhasil bagi saya:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i
kenik
sumber
7
Ini bekerja! untuk 64bit berada di bawah C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
Jerry Liang
1
Saya memiliki masalah yang sama, tetapi regiis tidak memperbaikinya - saya harus menghapus & membuat ulang seluruh pohon situs web dan menetapkan ulang kumpulan untuk setiap aplikasi, dan sekarang berfungsi ...
veljkoz
1
Jika ini adalah versi baru IIS (tidak ada situs lain yang menjalankannya) atau Anda tidak khawatir tentang situs yang dihosting dengan perubahan kerangka Anda bisa menggunakan -i bukannya -ir saat mendaftar.
Ram
44

Di IIS

Klik pada Pools Aplikasi

Klik kanan pada DefaultAppPool --- >> Set Default Aplikasi Pool ....--- >> Ubah .Net Versi ke V 4.0.

Alexander Zaldostanov
sumber
43

buka IIS Anda (ketik inetmgr dalam jalankan) dan ubah pengaturan Kumpulan aplikasi Anda, Untuk melihat besar Gambar ini Klik Kanan Gambar dan buka gambar di tab baru masukkan deskripsi gambar di sini

Ankit
sumber
26

Dalam menu Visual Studio:

Situs web -> Opsi Mulai -> tab bangunan -> Pilih Target Framework di kotak Dropdown (.NET FrameWork 4)

elaiyaraja
sumber
atau 4,5 dalam kasus saya :)
user230910
bagaimana jika server hanya memiliki 2.0? haruskah diperlukan untuk menginstal 4.0 / 4.5 ??
Juran
@ user230910 Di mana opsi itu?
DiegoS
Saya tidak dapat mengingat dengan jelas tetapi saya pikir ini mengacu pada IIS
user230910
Bekerja dengan sempurna untuk saya MEI 2019 menggunakan aplikasi formulir web Visual Studio 2019 di AWS EC2 Windows Server 2019.
Doug Null
12

Saya menghadapi masalah yang sama saat menerbitkan layanan web pertama saya. Saya mengatasinya dengan hanya melakukan ini:

  1. Buka IIS

  2. Klik pada Pools Aplikasi

  3. Klik kanan pada DefaultAppPool => Tetapkan Application Pool Default => Ubah .Net Versi ke V 4.0. (Anda juga dapat mengubah Versi .Net Framework aplikasi Anda secara khusus)

Semoga ini berhasil.

Arsman Ahmad
sumber
9

untuk IIS 7 coba sesuai dengan gambar yang diberikan ... tandai saya membantu jika itu bekerja untuk Anda.

masukkan deskripsi gambar di sini

gm arif
sumber
8

Saya harus mendaftarkan ASP.Net di IIS untuk menyelesaikannya di Windows Server 2008 R2. Sreenshot dari perintah bertempat di bawah

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 

masukkan deskripsi gambar di sini

LCJ
sumber
5

Ubah kumpulan aplikasi ke kerangka kerja target 4.0 alih-alih klasik.

  1. Situs web RC -> kelola situs web-> pengaturan lanjutan>
  2. opsi pertama berubah dari klasik ke kerangka 4 terintegrasi.
dev. Nagdy
sumber
5

Saya menggunakan IIS Express, bukan IIS.

Masalahnya ada di file applicationhost.config yang terletak di: {solution_folder} \. Vs \ config \ applicationhost.config.

Salah satu entri kumpulan aplikasi memiliki nilai managedRuntimeVersion "v2.0". Saya mengubahnya menjadi "v4.0", dan itu berfungsi dengan baik.

Saya cukup yakin bahwa root adalah salah satu paket NuGet yang saya instal baru-baru ini.

    <system.applicationHost>
       <applicationPools>
          <add name="BadAppPool1" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
       </applicationPools>
    </system.applicationHost>
NightShovel
sumber
2
Nice- setiap posting menyebutkan IIS. Saya menggunakan IIS Express. Terima kasih atas perbaikannya
PhillyNJ
4

Buka Proyek -> tekan Shift + F4 (Buka halaman properti) -> Pilih Build -> di Target Framework memilih .NET Framework 4 -> OK

Chưa biết
sumber
3

Buat kumpulan baru dengan memilih .Net Framework v4.0.3xxxxx

gunakan Mode Kelola Pipa: Terintegrasi

Tetapkan ke situs Anda dan selesai.

Ali Adravi
sumber
2

Untuk memperbaiki masalah ini cukup klik ikon Versi ASP.NET di bagian Alat Situs pada Panel Kontrol untuk mengalihkan kerangka kerja ke 4.0.

Sumanuski
sumber
2

Saya mengalami kesalahan ini dari kompilasi MSBuild yang gagal , dalam file proyek yang dikonversi dari versi VS sebelumnya ke VS2010 dan .NET 4.0. Sebenarnya itu adalah proyek Penerapan Web, dan solusi yang berhasil bagi saya adalah menambahkan entri berikut ini ke bagian PropertyGroup di awal file MSBuild :

<ProductVersion>10.0.11107</ProductVersion>

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Mungkin ini diperbarui secara otomatis ketika jenis proyek lainnya dikonversi dalam VS2010, tetapi hilang dari file proyek Penerapan Web saya setelah dikonversi.

ergolargo
sumber
2

Apa yang saya lakukan: Saya mengubah nilai Application Pool ke DefaultAppPool dari nilai sebelumnya. Anda melakukan ini di Pengaturan Lanjut (Situs Web -> Kelola Situs Web -> Pengaturan Lanjut>.

Eldon
sumber
2

Saya juga mendapat masalah yang sama saat menjalankan aplikasi saya secara lokal yang menunjuk ke .Net Framework 4.7.1. Bugnya adalah " Atribut TargetFrameWork atribut yang tidak dikenal " seperti yang ditunjukkan di bawah ini. masukkan deskripsi gambar di sini

Tetapi tidak ada jawaban di atas yang membantu saya. Akhirnya ketika saya mengubah nomor port saya sekarang (1413) ke beberapa nilai lain (60179) seperti yang ditunjukkan di bawah ini bekerja dengan baik untuk saya. Tapi saya tidak yakin untuk alasan sebenarnya di balik ini, tetapi itu berhasil.

masukkan deskripsi gambar di sini

Rinoy Ashokan
sumber
Saya hanya memverifikasi bahwa saya memiliki kesalahan yang tepat ini, dan saya mencoba mengubah port seperti yang ditunjukkan dalam jawaban ini. Saya menjalankan Klien Uji WCF untuk memulai layanan ini di localhost. Setelah mengubah nomor port, layanan dapat memulai. Terima kasih atas saranmu.
Evan
Setelah mencoba semua saran, hanya yang ini yang menyelesaikan masalah saya. Terima kasih banyak.
Prabo
Selamat datang di @Prabo jika memungkinkan, tolong bantu saya dengan suara UP
Rinoy Ashokan
Selamat datang di @Evan jika memungkinkan, tolong bantu saya dengan suara UP
Rinoy Ashokan
1

Baru saja ini di VS 2010.

Diperbaiki dengan mengedit file .sln dan mengubah TargetFrameworkMoniker untuk memiliki nilai ".NETFramework, Versi% 3Dv4.0" yang ditetapkan untuknya.

Mat
sumber
0

Jika Anda mengkompilasi file dan nilai "targetFramework" ditetapkan sebagai versi tertentu yaitu 4.0,

Pastikan host menjalankan .net framework seperti yang dinyatakan oleh versi yang sama.

Jika tidak, unduh kerangka kerja .net.

Setelah mengunduh, jika tidak diatur secara otomatis di manajer IIS untuk menggunakan ekstensi versi .net framework yang baru diunduh,

tambahkan ekstensi secara manual dengan membuka folder framework .net yang baru diunduh MELALUI manajer IIS:

Klik kanan folder situs web

2. buka "Properti"

3. di bawah "direktori virtual", klik "konfigurasi"

4.edit jalur ekstensi yang dapat dieksekusi ".aspx" (yang jalurnya diarahkan ke versi selain versi kerangka kerja .net yang baru diunduh) ke jalur yang benar yang merupakan folder versi yang baru saja diunduh dari kerangka kerja .net dan kemudian pilih file "aspnet_isapi.dll".

5.klik ok!

Makan
sumber
0

Hapus saja "Target Framework 4.0" dan tutup braket.

Itu akan berhasil

Vignesh
sumber
0

Ikuti dua langkah ini:

Daftarkan .net framework versi versi 4.0 (jika tidak terdaftar)

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

  2. Di kumpulan aplikasi, ubah .net framework ke v4.0

SharpCoder
sumber
0

Jika Anda menginstal IIS setelah instalasi. Net FrameWork. Anda perlu menginstal .net framework lagi untuk IIS. Jadi yang perlu kita lakukan adalah menjalankan aspnet_regiis -i. Semoga bermanfaat.

Joe.wang
sumber
0

Lihat kesalahan "Atribut tidak dikenal 'targetFramework'" di halaman 'Konsol keluaran' Jenkins di server build. Ini setelah saya mengubah 'kerangka target' untuk beberapa proyek dari '.NET Framework 3.5' menjadi '.NET Framework 4' dan melakukan perubahan saya.

Di Jenkins, pengaturan proyek harus diubah. Untuk solusinya, 'Versi MSBuild' harus diubah dari 'v3.5' ke 'v4.0'.

mathijsuitmegen
sumber
0

Baru saja masalah ini menyebarkan aplikasi baru ke kotak IIS lama. Penyelidikan menyebabkan v4.5.1 run-time diinstal tetapi aplikasi membutuhkan v4.5.2

Tidak ada selain menginstal versi ASP yang benar. Net run-time diperlukan.

rampok
sumber
0

Bisa jadi Anda memiliki file proj MSBUILD Anda sendiri dan menggunakan <AspNetCompiler>tugas tersebut. Dalam hal ini Anda harus menambahkan 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
sumber
0

Untuk layering, Cukup ubah versi targetFramework di file web.config saja, hal-hal lain tidak perlu diubah.

Cheah Eng Teong
sumber
0

2 langkah berikut ini akan memaksa menyegarkan Visual Studio dan IIS Express cache dan biasanya menyelesaikan masalah saya yang serupa:

  1. Cukup alihkan Project framework dari 4+ ke .Net framework 3.5 dan jalankan
  2. Jika berhasil, Anda dapat mengembalikannya ke kerangka target 4+ yang Anda inginkan dan melihat bahwa itu mungkin akan berfungsi lagi.
Iman
sumber
0

Mengubah nomor port untuk pengembangan lokal membantu saya Terima kasih @Rinay Ashokan. Saya telah melakukan semua pemecahan masalah dan akhirnya menemukan bahwa konfigurasi proyek disimpan dalam IIS express untuk nomor port. masukkan deskripsi gambar di sini

karthikn2411
sumber
-1

Bagi siapa pun yang memiliki ini yang tidak memiliki IIS berjalan pada PC dev mereka, inilah yang terjadi pada saya: Saya memiliki satu situs web pada, ditimpa dengan file dari situs web yang berbeda yang 4 sedangkan yang sebelumnya adalah 3,5. Mendapat kesalahan ini. Memperbaikinya hanya dengan mengubah nama direktori situs web, yang pada PC dev bisa apa saja, jadi tidak ada masalah. Di atas mungkin lebih elegan untuk memastikan, tetapi kadang-kadang bekerja sederhana, JIKA Anda bisa lolos begitu saja, yaitu, Anda berada di dev daripada QA atau Prod.

Paul
sumber