Thuộc tính không được nhận dạng 'targetFramework'. Lưu ý rằng tên thuộc tính phân biệt chữ hoa chữ thường


416

Tôi đang cố tải lên trang web của mình và tôi nhận được thông báo lỗi này:

Thuộc tính không được nhận dạng 'targetFramework'. Lưu ý rằng tên thuộc tính là trường hợp nhạy cảm.

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

Trang web hoạt động tốt trên PC cục bộ của tôi nhưng sẽ không mở khi tôi tải nó vào máy chủ của mình và cố gắng xem trực tuyến.


Nó không hiển thị tập tin nào chứa nó hoặc ở đâu?
Jon Skeet

2
Có phải nó được xây dựng trước đây trên khung 4.0? Elegantcode.com/2009/11/10/ Kẻ
Ta01

Vấn đề này có thể được giải quyết bằng 4.0.3. Bạn có thể kiểm tra bài viết KB ở đây. @ tôi và cho tôi biết nếu điều này khắc phục vấn đề của bạn, tôi có thể cố gắng nhận được một câu hỏi / câu trả lời chính tắc cho lỗi này và đóng các bản sao. Cảm ơn.

Khi tôi cố gắng cài đặt KB2599651 (tải xuống 64 bit) trên Win 7 x64, tôi nhận được thông báo lỗi rằng nó "không áp dụng hoặc bị chặn bởi một điều kiện khác trên máy tính của bạn". Tôi có lỗi tương tự như OP, đã cài đặt khung 4.0 và đã đăng ký với IIS và đã chọn nó làm Nhóm ứng dụng.
Tim

Bạn đã mở trong một phiên bản cũ của studio hình ảnh hơn dự án được phát triển trong? Hay nó được phát triển trong Webmatrix và sau đó được mở trong một studio hình ảnh cũ?
ruffrey

Câu trả lời:


610

Điều này thường xảy ra khi bạn có một thuộc tính targetFramework="4.0"trong web.config nhưng Nhóm ứng dụng được đặt để chạy ASP.NET 2.0. Các targetFrameworkthuộc tính là hoàn toàn không nhận biết được bằng ASP.NET 2.0 - để thay đổi nó để 2.0 sẽ không có hiệu quả mong muốn.

Liên hệ với bộ phận Hỗ trợ / Quản trị viên của bạn và chuyển AppPool sang 4.0.

Bạn cũng có thể xóa hoàn toàn thuộc tính, tuy nhiên nếu trang web của bạn được mã hóa bằng Khung 4.0, thì tôi chắc chắn một cái gì đó khác cũng sẽ gây ra lỗi.


20
Cảm ơn, điều này đã giải quyết được vấn đề, hãy kiểm tra liên kết này để biết hướng dẫn từng bước để AppPool của bạn chuyển sang 4.0: stackoverflow.com/questions/4890245/
Lỗi

cảm ơn @ vcsjones .. trang web của tôi hiện đang hoạt động chỉ vì bạn .. :)
Shiva Pareek

chỉ cần thêm vào @vcsjones giải pháp đăng ký .net 4.0 cũng có thể bị bỏ qua. Bạn có thể thực hiện đăng ký .net 4.0 bằng thủ tục trong liên kết này và sau đó bạn cần chọn nhóm ứng dụng lên 4.0.
Ram

4
Khi tôi googled thông báo lỗi, tôi tìm thấy trang này, với câu hỏi hay này và thậm chí là một câu trả lời đẹp hơn, mà tôi đã đưa ra nhiều tháng trước.
Memet Olsen

81

Đăng ký khung với IIS là những gì làm việc cho tôi:

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

7
Những công việc này! cho 64 bit dưới C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
Jerry Liang

1
Tôi cũng gặp vấn đề tương tự, nhưng regiis đã không khắc phục được - tôi đã phải thả và tạo lại toàn bộ cây trang web và gán lại nhóm cho mỗi ứng dụng, và bây giờ nó hoạt động ...
veljkoz

1
Nếu đây là phiên bản mới của IIS (không có trang web nào khác chạy trên nó) hoặc bạn không lo lắng về việc các trang web được lưu trữ bị phá vỡ với thay đổi khung, bạn có thể sử dụng -i thay vì -ir trong khi đăng ký.
Ram

44

Trong IIS

Nhấp vào Hồ bơi ứng dụng

Nhấp chuột phải vào DefaultAppPool --- >> Đặt mặc định nhóm ứng dụng ....--- >> Thay đổi phiên bản .Net thành V 4.0.


43

mở IIS của bạn (gõ inetmgr đang chạy) và thay đổi cài đặt nhóm Ứng dụng của bạn, Để xem hình ảnh lớn này Nhấp chuột phải vào Hình ảnh và mở hình ảnh trong tab mới nhập mô tả hình ảnh ở đây


26

Trong menu Visual Studio:

Trang web -> Tùy chọn bắt đầu -> tab xây dựng -> Chọn Khung mục tiêu trong hộp thả xuống (.NET FrameWork 4)


hoặc 4,5 trong trường hợp của tôi :)
user230910 14/12/14

Nếu máy chủ chỉ có 2.0 thì sao? Có cần thiết để cài đặt 4.0 / 4.5 ??
Juran

@ user230910 Tùy chọn đó ở đâu?
DiegoS

Tôi không thể nhớ rõ nhưng tôi nghĩ rằng điều này đề cập đến IIS
user230910

Hoạt động hoàn hảo đối với tôi Tháng 5 năm 2019 bằng ứng dụng biểu mẫu web Visual Studio 2019 trên AWS EC2 Windows Server 2019.
Doug Null

12

Tôi đã phải đối mặt với cùng một vấn đề trong khi xuất bản các dịch vụ web đầu tiên của tôi. Tôi đã giải quyết nó bằng cách đơn giản là làm điều này:

  1. Mở IIS

  2. Nhấp vào Hồ bơi ứng dụng

  3. Nhấp chuột phải vào DefaultAppPool => Đặt mặc định nhóm ứng dụng => Thay đổi phiên bản .Net thành V 4.0. (Bạn cũng có thể thay đổi cụ thể .Net Framework Phiên bản ứng dụng của bạn)

Hy vọng, nó sẽ làm việc.


9

cho IIS 7 hãy thử theo hình ảnh đã cho ... đánh dấu tôi hữu ích nếu nó hoạt động cho bạn.

nhập mô tả hình ảnh ở đây


8

Tôi đã phải đăng ký ASP.Net trong IIS để giải quyết nó trong Windows Server 2008 R2. Xem các lệnh dưới đây

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 

nhập mô tả hình ảnh ở đây


5

Thay đổi nhóm ứng dụng thành khung mục tiêu 4.0 thay vì cổ điển.

  1. Trang web RC -> quản lý trang web-> cài đặt nâng cao>
  2. tùy chọn đầu tiên thay đổi từ cổ điển sang khung 4 tích hợp.

5

Tôi đang sử dụng IIS Express, thay vì IIS.

Vấn đề nằm ở tệp applicationationhost.config nằm ở: {Solution_folder} \. Vs \ config \ applicationationhost.config.

Một trong các mục nhóm ứng dụng có giá trị ManagedR.78Version là "v2.0". Tôi đã thay đổi nó thành "v4.0" và nó hoạt động tốt.

Tôi khá chắc chắn nguyên nhân gốc là một trong những gói NuGet tôi đã cài đặt gần đây.

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

2
Nice- mỗi bài viết đề cập đến IIS. Tôi đã sử dụng IIS Express. Thx cho sửa chữa
PhillyNJ

4

Mở dự án -> nhấn Shift + F4 (Trang thuộc tính mở) -> Chose Build -> trong Target Framework đã chọn .NET Framework 4 -> OK


3

Tạo nhóm mới bằng cách chọn .Net Framework v4.0.3xxxxx

sử dụng Chế độ quản lý đường ống: Tích hợp

Chỉ định nó cho trang web của bạn và thực hiện.


2

Để khắc phục sự cố này, chỉ cần nhấp vào biểu tượng Phiên bản ASP.NET trong phần Công cụ Trang web của Bảng điều khiển để chuyển khung sang 4.0.


2

Tôi đã gặp lỗi này từ một trình biên dịch MSBuild không thành công , trong tệp dự án được chuyển đổi từ phiên bản trước đó của VS thành VS2010 và .NET 4.0. Đây thực sự là một dự án Triển khai Web và giải pháp hiệu quả với tôi là thêm các mục sau vào phần Thuộc tính nhóm khi bắt đầu tệp MSBuild :

<ProductVersion>10.0.11107</ProductVersion>

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Có thể những thứ này được tự động cập nhật khi các loại dự án khác được chuyển đổi trong VS2010, nhưng chúng bị thiếu trong tệp dự án Triển khai Web của tôi sau khi nó được chuyển đổi.


2

Những gì tôi đã làm: Tôi đã thay đổi giá trị của Nhóm ứng dụng thành DefaultAppPool từ một giá trị trước đó. Bạn làm điều này trong Cài đặt nâng cao (Trang web -> Quản lý trang web -> Cài đặt nâng cao>.


2

Tôi cũng gặp vấn đề tương tự khi chạy ứng dụng cục bộ đang trỏ đến .Net Framework 4.7.1. Lỗi là " Thuộc tính TargetFrameWork " không được nhận dạng "như hiển thị bên dưới. nhập mô tả hình ảnh ở đây

Nhưng không có câu trả lời nào ở trên giúp tôi cả. Cuối cùng khi tôi thay đổi số cổng hiện tại (1413) của mình thành một số giá trị khác (60179) như hình bên dưới, nó hoạt động tốt với tôi. Nhưng tôi không chắc vì lý do thực sự đằng sau điều này, nhưng nó đã hoạt động.

nhập mô tả hình ảnh ở đây


Tôi chỉ xác minh rằng tôi đã có lỗi chính xác này và tôi đã cố gắng thay đổi cổng như được chỉ ra trong câu trả lời này. Tôi đang chạy ứng dụng khách thử nghiệm WCF để bắt đầu dịch vụ này trên localhost. Sau khi thay đổi số cổng, dịch vụ đã có thể bắt đầu. Cảm ơn bạn đã gợi ý.
Evan

Sau khi thử tất cả các đề xuất chỉ có điều này giải quyết vấn đề của tôi. Cảm ơn bạn rất nhiều.
Prabo

Chào mừng bạn @Prabo nếu có thể, hãy giúp tôi bỏ phiếu UP
Rinoy Ashokan


1

Chỉ cần có điều này trong VS 2010.

Đã sửa lỗi bằng cách chỉnh sửa tệp .sln và thay đổi TargetFrameworkMoniker để có giá trị ".NETFramework, Phiên bản% 3Dv4.0" được gán cho nó.


0

Nếu bạn biên dịch các tệp và giá trị của "targetFramework" được đặt thành một phiên bản cụ thể, tức là 4.0,

Đảm bảo rằng máy chủ đang chạy khung .net như cùng một phiên bản đã nêu.

Nếu không, hãy tải xuống khung .net.

Sau khi tải xuống, nếu nó không tự động được đặt trong trình quản lý IIS sẽ sử dụng phần mở rộng của phiên bản .net framework mới tải xuống,

thêm tiện ích mở rộng bằng tay vào thư mục của khung .net được tải xuống gần đây THROUGH Trình quản lý IIS:

Nhấp chuột vào thư mục trang web

2. đi đến "Thuộc tính"

3.under "thư mục ảo", nhấp vào "cấu hình"

4. di chuyển đường dẫn thực thi của tiện ích mở rộng ".aspx" (trong đó đường dẫn được trỏ đến phiên bản khác với phiên bản của khung .net được tải xuống gần đây) đến đường dẫn chính là thư mục của phiên bản .net được tải xuống MỚI và sau đó chọn tệp "aspnet_isapi.dll".

5. Bấm ok!


0

Chỉ cần xóa "Target Framework 4.0" và đóng khung.

Nó sẽ làm việc


0

Thực hiện theo hai bước sau:

Đăng ký phiên bản khung .net phiên bản 4.0 (nếu chưa đăng ký)

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

  2. Trong nhóm ứng dụng, thay đổi khung .net thành v4.0


0

Nếu bạn cài đặt IIS sau khi cài đặt .Net FrameWork. Bạn cần cài đặt lại khung .net cho IIS. Vì vậy, tất cả những gì chúng ta cần làm là chạy aspnet_regiis -i. Hy vọng nó hữu ích.


0

Đã thấy lỗi "Thuộc tính không được nhận dạng 'targetFramework'" trong trang 'Bảng điều khiển đầu ra' của Jenkins trên máy chủ bản dựng. Đây là sau khi tôi thay đổi 'khung mục tiêu' cho một số dự án từ '.NET Framework 3.5' thành '.NET Framework 4' và cam kết các thay đổi của tôi.

Trong Jenkins, các thiết lập dự án đã được thay đổi. Đối với giải pháp, 'Phiên bản MSBuild' phải được thay đổi từ 'v3.5' thành 'v4.0'.


0

Chỉ có vấn đề này khi triển khai một ứng dụng mới vào một hộp IIS cũ. Cuộc điều tra đã dẫn đến thời gian chạy v4.5.1 được cài đặt nhưng ứng dụng yêu cầu v4.5.2

Không có gì ngoài việc cài đặt phiên bản chính xác của thời gian chạy ASP .Net là bắt buộc.


0

Nó có thể là bạn có tệp proj MSBUILD của riêng bạn và đang sử dụng <AspNetCompiler>tác vụ. Trong trường hợp đó bạn nên thêm 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>

0

Để tạo lớp, Chỉ cần thay đổi phiên bản của targetFramework trong tệp web.config, những thứ khác không cần thay đổi.



0

2 bước sau đây sẽ buộc làm mới bộ đệm Visual Studio và IIS Express và thường giải quyết các vấn đề tương tự của tôi:

  1. Đơn giản chỉ cần chuyển khung dự án từ 4+ sang .Net framework 3.5 và chạy nó
  2. Nếu nó chạy thành công, bạn có thể hoàn nguyên nó trở lại khung mục tiêu 4+ mong muốn của bạn và thấy rằng nó có thể sẽ hoạt động trở lại.

0

Thay đổi số cổng cho sự phát triển địa phương đã giúp tôi Cảm ơn @Rinay Ashokan. Tôi đã thực hiện tất cả các sự cố khi chụp và cuối cùng thấy rằng các cấu hình dự án được lưu trữ trong IIS express cho số cổng. nhập mô tả hình ảnh ở đây


-1

Đối với bất kỳ ai có điều này không có IIS chạy trên PC dev của họ, đây là điều đã xảy ra với tôi: Tôi có một trang web trên, ghi đè lên các tệp từ một trang web khác là 4 trong khi trước đó là 3,5. Có lỗi này. Đã sửa nó đơn giản bằng cách thay đổi tên thư mục của trang web, mà trên PC dev có thể là bất cứ điều gì, vì vậy không có vấn đề gì. Trên đây có lẽ là thanh lịch hơn để chắc chắn, nhưng đôi khi các công việc đơn giản, NẾU bạn có thể thoát khỏi nó, tức là bạn đang ở dev chứ không phải QA hoặc Prod.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.