Tanınmayan 'targetFramework' özelliği. Özellik adlarının büyük / küçük harfe duyarlı olduğunu unutmayın


416

Sitemi yüklemeye çalışıyorum ve bu hata mesajını alıyorum:

Tanınmayan 'targetFramework' özelliği. Özellik adlarının büyük / küçük harfe duyarlı olduğunu unutmayın.

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

Site yerel bilgisayarımda iyi çalışıyor ancak ana bilgisayarıma yüklediğimde ve çevrimiçi görüntülemeye çalıştığımda açılmıyor.


Hangi dosyanın onu veya nerede içerdiğini göstermiyor mu?
Jon Skeet

2
Daha önce 4.0 öncesi çerçeve üzerine inşa edilmiş miydi? elegantcode.com/2009/11/10/…
Ta01

Bu sorun 4.0.3 ile giderilebilir. KB makalesine buradan göz atabilirsiniz. @ bana ve bu sorunu giderirse bana bildirin, ben bu hata için kanonik bir soru / cevap almak ve dupes kapatın. Teşekkürler.

Win 7 x64'e KB2599651 (64 bit yükleme) yüklemeye çalıştığımda, "uygulanmadığı veya bilgisayarınızdaki başka bir koşul tarafından engellendi" hata iletisini alıyorum. OP ile aynı hatayla karşılaştım, çerçeve 4.0'ı yükledim ve IIS'ye kaydettim ve Uygulama Havuzu olarak seçtim.
Tim

Visual Studio'nun projenin geliştirildiğinden daha eski bir sürümünü açtınız mı? Yoksa Webmatrix'te geliştirildi ve daha sonra eski bir görsel stüdyoda mı açıldı?
ruffrey

Yanıtlar:


610

Bu genellikle targetFramework="4.0"web.config dosyasında bir özniteliğiniz olduğunda , ancak Uygulama Havuzu ASP.NET 2.0'ı çalıştıracak şekilde ayarlandığında gerçekleşir. targetFrameworkNitelik tamamen ASP.NET 2.0 tarafından tanınmadı - 2.0 değiştirmeyi arzu etkisi olmayacağını bu yüzden.

Destek / Yöneticinize başvurun ve AppPool'u 4.0 olarak değiştirin.

Ayrıca özniteliği tamamen kaldırabilirsiniz, ancak siteniz 4.0 Framework ile kodlanmışsa, başka bir şeyin de hataya neden olacağından eminim.


20
Teşekkürler, bu sorunu çözdü, AppPool'unuzun
4.0'a geçmesi

teşekkürler @ vcsjones..my web sitesi şimdi sadece senin yüzünden çalışıyor ve çalışıyor .. :)
Shiva Pareek

sadece @ vcsjones çözümüne kayıt eklemek için .net 4.0 da kaçırılabilir. Bu bağlantıdaki prosedürü kullanarak .net 4.0 kaydı yapabilirsiniz ve daha sonra uygulama havuzunu 4.0'a yüklemeniz gerekir.
Ram

4
Hata mesajını aradığımda, bu sayfayı, bu güzel soruyu ve hatta daha güzel bir cevabı buldum, ki bu da aylar önce onayladım.
Memet Olsen

81

Çerçeveyi IIS'ye kaydetmek benim için işe yarayan şeydi:

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

7
Bu çalışıyor! 64bit için C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
Jerry Liang

1
Aynı sorunu yaşadım, ancak regiis bunu düzeltmedi - tüm web sitesi ağacını bırakıp yeniden oluşturmak ve her uygulama için havuzu yeniden atamak zorunda kaldım ve şimdi çalışıyor ...
veljkoz

1
Bu, IIS'nin yeni bir sürümüyse (üzerinde çalışan başka hiçbir site yoksa) veya barındırılan sitelerin bir çerçeve değişikliği ile kırılmasından endişe etmiyorsanız, kayıt sırasında -ir yerine -i kullanabilirsiniz.
Ram

44

IIS'de

Uygulama Havuzları'na tıklayın

DefaultAppPool --- >> öğesini sağ tıklatın Uygulama Havuzu Varsayılanını Ayarla ....--- >> .Net Sürümü'nü V 4.0 olarak değiştirin.


43

IIS'nizi açın (inetmgr yazın) ve Uygulama havuzu ayarınızı değiştirin, Bu resmi büyük görüntülemek için Resmi Sağ Tıklayın ve resmi yeni sekmede açın resim açıklamasını buraya girin


26

Visual Studio menüsünde:

Web sitesi -> Başlat Seçenekleri -> oluşturma sekmesi -> Açılır kutuda Hedef Çerçeveyi Seç (.NET FrameWork 4)


veya benim durumumda 4.5 :)
user230910 14:14

sunucuda sadece 2.0 varsa ne olur? 4.0 / 4.5 yüklemek gerekir?
Juran

@ user230910 Bu seçenek nerede?
Diego

Açıkça hatırlayamıyorum ama bu IIS'ye atıfta bulunduğunu düşünüyorum
user230910 24:17

AWS EC2 Windows Server 2019'da Visual Studio 2019 web formları uygulamasını kullanarak Mayıs 2019 benim için mükemmel çalıştı.
Doug Null

12

1. web hizmetlerimi yayınlarken de aynı sorunla karşı karşıyaydım. Sadece bunu yaparak çözdüm:

  1. IIS'yi aç

  2. Uygulama Havuzları'na tıklayın

  3. DefaultAppPool => öğesini sağ tıklatın Uygulama Havuzu Varsayılanını Ayarla => .Net Sürümünü V 4.0 olarak değiştir. (Ayrıca uygulamanızın .Net Framework Sürümü'nü özellikle değiştirebilirsiniz)

Umarım işe yarar.


9

IIS 7 için verilen resme göre deneyin ... sizin için işe yarayıp yaramadığını bana işaretleyin.

resim açıklamasını buraya girin


8

Windows Server 2008 R2'de giderilmesi için ASP.Net'i IIS'ye kaydettirmek zorunda kaldım. Aşağıda yer alan komutların ekran görüntüsü

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 

resim açıklamasını buraya girin


5

Uygulama havuzunu klasik yerine çerçeve 4.0 olarak değiştirin.

  1. RC web sitesi -> web sitesini yönetme -> gelişmiş ayar>
  2. ilk seçenek klasikten çerçeve 4'e entegre.

5

IIS yerine IIS Express kullanıyorum.

Sorun şu adresteki applicationhost.config dosyasındaydı: {solution_folder} \. Vs \ config \ applicationhost.config.

Uygulama havuzu girişlerinden birinin "v2.0", manageRuntimeVersion değeri vardı. "V4.0" olarak değiştirdim ve düzgün çalıştı.

Temel nedenin son zamanlarda kurduğum NuGet paketlerinden biri olduğundan eminim.

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

2
Güzel- her gönderi IIS'den bahsetti. IIS Express kullanıyordum. Düzeltme için
teşekkürler

4

Açık Projesi -> basın Shift + F4 (Açık özellikleri sayfası) -> seçti Oluştur -> içinde Hedef Framework seçti .NET Framework 4 Tamam> -


3

Net Framework v4.0.3xxxxx öğesini seçerek yeni bir havuz oluşturun

Boru Hattı Modunu Yönet: Entegre

Sitenize atayın ve bitti.


2

Bu sorunu gidermek için, çerçeveyi 4.0 olarak değiştirmek üzere Denetim Masası'nın Site Araçları bölümündeki ASP.NET Sürümü simgesini tıklatmanız yeterlidir.


2

Ben VS önceki bir sürümü VS2010 ve .NET 4.0 dönüştürülmüş bir proje dosyasında başarısız bir MSBuild derleme bu hatayı vardı . Aslında bir Web Dağıtımı projesiydi ve benim için çalışan çözüm , MSBuild dosyasının başındaki PropertyGroup bölümüne aşağıdaki girişleri eklemekti :

<ProductVersion>10.0.11107</ProductVersion>

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Belki diğer proje türleri VS2010'da dönüştürüldüğünde bunlar otomatik olarak güncellenir, ancak dönüştürüldükten sonra Web Dağıtımı proje dosyamda eksikti.


2

Ne yaptım: Uygulama Havuzu değerini DefaultAppPool için önceki bir değerden değiştirdim. Bunu Gelişmiş Ayarlar'da (Web Sitesi -> Web Sitesini Yönet -> Gelişmiş Ayarlar>) yapın.


2

.Net Framework 4.7.1'e işaret eden uygulamamı yerel olarak çalıştırırken de aynı sorunu yaşadım. Hata aşağıda gösterildiği gibi " Tanınmayan TargetFrameWork özniteliği " idi. resim açıklamasını buraya girin

Ama yukarıdaki cevapların hiçbiri bana yardımcı olmadı. Nihayet mevcut port (1413) numaramı aşağıda gösterildiği gibi başka bir değere (60179) değiştirdiğimde benim için iyi çalıştı.Ancak bunun arkasındaki gerçek nedenden emin değilim, ama işe yaradı.

resim açıklamasını buraya girin


Ben sadece bu tam bir hata olduğunu doğrulamak ve sadece bu cevapta belirtildiği gibi port değiştirmeyi denedim. Bu hizmeti localhost üzerinde başlatmak için WCF Test Client'ı çalıştırıyorum. Bağlantı noktası numarasını değiştirdikten sonra hizmet başlatılabildi. Öneriniz için teşekkür ederiz.
Evan

Tüm önerileri denedikten sonra sadece bu bir sorunumu çözdü. Çok teşekkür ederim.
Prabo

Mümkünse hoş geldiniz @Prabo lütfen UP oyunda bana yardım et
Rinoy Ashokan

Mümkünse hoş geldiniz @Evan pls UP oy bana yardım
Rinoy Ashokan

1

Sadece VS 2010'da vardı.

.Sln dosyasını düzenleyerek ve TargetFrameworkMoniker'ı değiştirerek ".NETFramework, Version% 3Dv4.0" değerine sahip olacak şekilde düzeltildi .


0

Dosyaları derlerseniz ve "targetFramework" değeri belirli bir sürüm, yani 4.0 olarak ayarlanırsa,

Ana bilgisayarın, belirtilen sürümle aynı .net çerçevesini çalıştırdığından emin olun.

Değilse, .net çerçevesini indirin.

İndirdikten sonra, IIS yöneticisinde .net çerçevesinin yeni indirilen sürümünün uzantısını kullanacak şekilde otomatik olarak ayarlanmamışsa,

IIS yöneticisi üzerinden en son indirilen .net framework klasörüne giderek uzantıyı manuel olarak ekleyin:

1. sağ tıklayın web sitesi klasörü

2. "Özellikler" e gidin

3. "sanal dizin" altında, "yapılandırma" yı tıklayın

4. ".aspx" uzantısının (yolu yakın zamanda indirilen .net çerçevesinin sürümü dışındaki bir sürüme işaret ettiği) yürütülebilir yolunu .net çerçevesinin YENİ olarak indirilen sürümünün klasörü olan doğru yola düzenleyin ve sonra "aspnet_isapi.dll" dosyasını seçin.

5. tıklayın tamam!


0

"Hedef Çerçeve 4.0" ı kaldırın ve braketi kapatın.

Çalışacak


0

Şu iki adımı izleyin:

.Net framework sürüm 4.0 sürümünü kaydedin (kayıtlı değilse).

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

  2. Uygulama havuzunda .net çerçevesini v4.0 olarak değiştirin


0

.Net FrameWork yüklendikten sonra IIS'yi yüklerseniz. IIS için .net çerçevesini yeniden yüklemeniz gerekir. Yani tek yapmamız gereken koşmak aspnet_regiis -i. Umarım faydalıdır.


0

Bir derleme sunucusundaki Jenkins'in 'Konsol çıkışı' sayfasında "Tanınmayan özellik 'targetFramework'" hatasını gördüm. Bu, birkaç projenin 'hedef çerçevesini' .NET Framework 3.5'ten '.NET Framework 4' olarak değiştirip değişiklikleri yapmamın ardından oldu.

Jenkins'te proje ayarlarının değiştirilmesi gerekiyordu. Çözüm için 'MSBuild Sürümü', 'v3.5' yerine 'v4.0' olarak değiştirilmelidir.


0

Eski bir IIS kutusuna yeni bir uygulama dağıtırken bu sorunu yaşadım. Soruşturma, v4.5.1 çalışma zamanının kurulmasına neden oldu, ancak uygulama v4.5.2 gerektiriyor

ASP .Net çalışma zamanının doğru sürümünü yüklemekten başka bir şey gerekli değildi.


0

Kendi MSBUILD proj dosyanız olabilir ve <AspNetCompiler>görevi kullanıyor olabilirsiniz . Bu durumda ToolPathfor .NET4 eklemeniz gerekir .

<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

Katmanlama için, sadece web.config dosyasındaki targetFramework sürümünü değiştirin, diğer şeyler değişmeye gerek yoktur.



0

aşağıdaki 2 adım, Visual Studio ve IIS Express önbelleğini yenilemeye zorlar ve genellikle benzer sorunlarımı çözer:

  1. Project framework'ü 4+'tan .Net framework 3.5'e geçirin ve çalıştırın
  2. Eğer başarılı ran geri istediğiniz 4+ hedef çerçevesinde geri döndürmek ve muhtemelen tekrar çalışacağını görebilirsiniz.

0

Yerel gelişme için bağlantı noktası numarasını değiştirmek bana yardımcı oldu Thanks @Rinay Ashokan. Tüm sorun giderme yaptım ve nihayet proje yapılandırmalarının bağlantı noktası numarası için IIS ekspresinde depolandığını gördüm. resim açıklamasını buraya girin


-1

Dev PC'lerinde IIS çalıştıran bu sahip olan herkes için, bana ne oldu: Bir web sitem vardı, bir önceki fark 3.5 iken 4 olan bir fark web sitesinden dosyalar üzerine yazılmıştır. Bu hatayı aldım. Sadece bir dev PC'de herhangi bir şey olabilir, bu yüzden sorun değil, web sitesinin dizin adını değiştirerek düzeltildi. Yukarıdakiler muhtemelen emin olmak için daha zariftir, ancak bazen basit işler, eğer ondan kurtulabilirseniz, yani QA veya Prod yerine geliştiricisiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.