Trang bạn đang yêu cầu không thể được phục vụ do cấu hình tiện ích mở rộng. thông báo lỗi


272

Tôi nhận được thông báo lỗi này khi cố gắng chạy ứng dụng của mình. Tôi không biết cách khắc phục:

Lỗi HTTP 404.3 - Không tìm thấy Trang bạn đang yêu cầu không thể được phục vụ do cấu hình tiện ích mở rộng. Nếu trang là một tập lệnh, thêm một trình xử lý. Nếu tệp nên được tải xuống, thêm bản đồ MIME.

Đây là một ảnh chụp màn hình của trang lỗi: văn bản thay thế

Tôi có thể làm gì để khắc phục lỗi này?


1
mã nguồn sẽ hữu ích hơn thay vì trang lỗi
gsharp

1
Phần nào của mã nguồn bạn sẽ cần phải xem?

1
Sau khi làm theo hướng dẫn ở trên, nếu bạn gặp lỗi tương tự, hãy đi qua liên kết bên dưới và làm theo các bước Bấm vào đây
Raj

Câu trả lời:


170

Sử dụng aspnet_regiis.exe để đăng ký phiên bản .NET framework bạn đang sử dụng.

Đây là một vấn đề phổ biến và xảy ra khi IIS được cài đặt sau khung VS hoặc .NET.

Lưu ý - đối với người dùng Windows 8/10, hãy xem câu trả lời khác của JohnOpincar bên dưới . Và cũng là nhận xét / mẹo từ Kevin Brydon.


11
Vì thực tế tôi đã cài đặt Visual Studio trước rồi đến IIS. Tôi hiện đang chạy lệnh "aspnet_regiis.exe -i". Hy vọng điều này sửa lỗi.

5
Làm việc cho tôi cũng vậy khi tôi gặp lỗi này khi cố gắng truy cập dịch vụ WCF .svc.
atconway

Lưu ý - đối với người dùng Windows 8, hãy xem câu trả lời khác của
JohnOpincar

+1 Đối với bất kỳ ai khác tìm thấy điều này thông qua Tìm kiếm, bạn có thể thấy việc thực hiện Sửa chữa trên Cài đặt .NET dễ dàng hơn thay vì cố gắng chạy aspnet_regiis.exe như một đường dẫn ít kháng cự nhất và giải quyết vấn đề. Chúng tôi thấy điều này rất nhiều trên các hộp đã cài đặt .NET 4.5.2 (thông qua Windows Update) trước khi cài đặt Vai trò IIS, hơi khó chịu vì các hộp này sẽ hiển thị .NET 4 dưới dạng tùy chọn trong nhóm ứng dụng của họ, nhưng nếu ứng dụng của bạn yêu cầu .NET 4.5 giống như ứng dụng của chúng tôi thì nó sẽ thất bại với thông báo trên.
aolszowka

246

Trong Windows 8/10, bạn phải sử dụng

  • Mở Bảng điều khiển →
  • Chương trình và tính năng →
  • Bật hoặc tắt các tính năng của Windows →
  • Dịch vụ thông tin Internet (IIS) →
  • Dịch vụ web toàn cầu →
  • Tính năng phát triển ứng dụng →
  • Kiểm tra các mục thích hợp, chẳng hạn như kích hoạt ASP.NET. (tức là cài đặt phiên bản phù hợp bạn muốn định cấu hình trang web của mình)

Tham khảo: Kiểm tra giải pháp của câu hỏi này để tham khảo


217
Tôi phải kiểm tra .NET Framework 4.5 Advanced Services> WCF Services>HTTP Activation
Kevin Brydon

13
chạy lệnh này từ dấu nhắc lệnh của quản trị viên: "merg / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation / all", hoặc "merg / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation45 / all"
Paul Suart

Ngay khi tôi quen với việc chạy regiis, microsoft sẽ thay đổi nó một lần nữa. Ít nhất điều này dễ dàng hơn nhiều - thay đổi tương tự như cài đặt WIF. Bây giờ họ nên thêm SQL để bật / tắt tính năng của Windows.
nocarrier

@KevinBrydon - Cảm ơn bạn rất nhiều! Mẹo của bạn rất hữu ích để giải quyết vấn đề trên Windows 2012 R2.
Amil Waduwawara

Trong máy chủ Windows 2012 R2, cho phép "Kích hoạt http" hoạt động với tôi.
Dhanuka777

117

Tôi đã sửa nó trên Windows 10:

  1. Chuyển đến Bảng điều khiển - Chương trình và Tính năng - Bật hoặc tắt các tính năng của Windows.

  2. Chọn .NET Framework 4.6 Dịch vụ nâng cao - Dịch vụ WCF

  3. Kiểm tra kích hoạt HTTP.

  4. OK xong.


5
Hoạt động với tôi trên Windows 10! Cảm ơn bạn!
Serge Malyutin

1
Cũng hoạt động với tôi khi giành chiến thắng 8.1
Qerts

Hoạt động trên Win10 iis7
noCodeMonkeys

Điều này hoạt động sau khi nâng cấp lên Windows 1709 và phải cài đặt lại IIS của tôi
garrettendi

Hoàn toàn phù hợp với tôi. Giải pháp tuyệt vời nếu bạn gặp phải "Lỗi này xảy ra khi phần mở rộng tệp của URL được yêu cầu dành cho loại MIME không được định cấu hình trên máy chủ"
eranda.del

84

Trong trường hợp của tôi, tôi cần thêm các loại MIME cho mỗi phần mở rộng tệp mà tôi muốn phân phát cho cấu hình web:

<system.webServer>
    <staticContent>
      <mimeMap fileExtension=".shp" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".dbf" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".kml" mimeType="text/xml" />
    </staticContent>
    ...
</system.webServer>

2
Hơn 1 nó đã khắc phục sự cố của tôi ... tôi đã cố tải .jsonvà tôi đã liên tục gặp lỗi OP và cuối cùng tôi đã thêm mimeMapvào web.config và giải quyết vấn đề
Nick Kahn

Tôi có cần thêm loại MIME cho tệp asmx không?
Shilpa Soni

Các tệp asmx @ShilpaSoni là các tệp máy chủ asp.net (không phải nội dung tĩnh). vì vậy bạn không thể và bạn không cần phải tải chúng xuống từ máy khách.
Mahmoodvcs

1
đây là bản đồ các phần mở rộng tệp cho mimeType thích hợp của chúng, được tìm thấy từ câu hỏi SO này
The Red Pea

21

Trong trường hợp điều này giúp được bất cứ ai, tôi đã gặp phải lỗi này khi cố chạy aspnet_regiis.exe:

Hoạt động thất bại với 0x8007000B

Một nỗ lực đã được thực hiện để tải một chương trình với định dạng không chính xác

Hóa ra, máy chủ đã chạy 2008 64 bit và tôi đang cố chạy phiên bản 32 bit của tiện ích. Chạy phiên bản được tìm thấy trong \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 đã khắc phục sự cố.

c:\Windows\Microsoft.NET\Framework64\v2.0.50727>aspnet_regiis.exe -i

7

Tôi vừa gặp tình huống tương tự với khách hàng của mình. Chúng tôi có sản phẩm riêng của chúng tôi cài đặt một trang web. Trình cài đặt cấu hình mọi thứ: nhóm IIS, trang web, web.config, v.v.

Chúng tôi đã cài đặt một trang web khác bằng trình cài đặt của chúng tôi. Chúng tôi đã nhập cùng một tham số, vì vậy web.configs tình cờ giống nhau ở cả hai trang web.

Tuy nhiên, trang web mới được cài đặt hoạt động tốt, trong khi trang web cũ thì không. Sau đó, tôi đã mở 2 cửa sổ IIS Manager và bắt đầu so sánh sự khác biệt trong cài đặt trang web. Và tôi đã tìm thấy một vấn đề.

Ai đó đã xóa tất cả các ánh xạ Handler với trang web cũ. Nếu bạn đi đến "Bản đồ xử lý", bạn sẽ thấy ở đó aspx, asmx và các phần mở rộng và tên khác của trình xử lý. Vì vậy, trong trang web cũ tất cả những hồ sơ đã bị mất.

Vì vậy, trước tiên tôi sẽ đề nghị kiểm tra "Bản đồ xử lý" - phải có rất nhiều hồ sơ ở đó. Tạo một trang web mới và so sánh để biết có bao nhiêu nên có.

Ai đã xóa chúng, một người hay một chương trình khác, tôi không biết. Nếu ai đó có thể biết liệu có tồn tại một số ứng dụng theo dõi nào đó sẽ cho biết rằng miền người dùng \ john đang sửa đổi trang web vào ngày "07.03.2012 12:34" sẽ hữu ích.



6

Tôi đã khắc phục sự cố của mình trên máy chủ Windows 2012 bằng cách cài đặt TẤT CẢ các tính năng WCF.

A) Trình quản lý máy chủ> Quản lý [liên kết trên cùng bên trái]> Thêm vai trò và tính năng

B) Trong Tính năng> .Net Framework 4.5 Tính năng> Dịch vụ WCF

C) Kiểm tra (kích hoạt) các tính năng. Tôi đã kiểm tra tất cả.

D) Cài đặt


2
Tôi chỉ kiểm tra Kích hoạt HTTP và Kích hoạt TCP và nó hoạt động với tôi. Dù sao cũng cảm ơn bạn
Aleksei Mialkin

6

Chạy Windows Server 2008 R2 64bit và .net framework 4.5, đã chạy lệnh này từ vị trí này và đã thành công:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i

đầu ra:

Microsoft (R) ASP.NET RegIIS version 4.0.30319.0
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation.  All rights reserved.
Start installing ASP.NET (4.0.30319.0).
.....
Finished installing ASP.NET (4.0.30319.0).

3

Như @Mahmoodvcs đã đề cập, tôi đã yêu cầu đặt / thêm các loại MIME cho phần mở rộng tệp mà tôi cần để lưu trữ / tải xuống trực tiếp, trong trường hợp này là tệp kết xuất của Heroku (sao lưu cơ sở dữ liệu của postgres), do đó, để đặt máy chủ IIS công cộng bạn có thể tải xuống các tệp này mà không yêu cầu xô AWS S3 hoặc chia sẻ HTTP như dropbox, đây là một tùy chọn tuyệt vời!

<staticContent>
  <mimeMap fileExtension=".dump" mimeType="application/octet-stream" />
</staticContent>



2

Tôi cũng gặp lỗi này, trên Windows Server 2008 IIS 7, tôi không cài đặt phòng thu trực quan nên cài đặt lại / sửa chữa .NET 4.0 đã thực hiện thủ thuật này.


1

Để thêm tiện ích mở rộng để phục vụ trong IIS, hãy làm theo -

  1. Mở IIS Manager và điều hướng đến cấp độ bạn muốn quản lý.
  2. Trong Chế độ xem Tính năng, bấm đúp vào Loại MIME.
  3. Trong ngăn Hành động, bấm Thêm.
  4. Trong hộp thoại Thêm loại MIME, nhập phần mở rộng tên tệp vào hộp văn bản mở rộng tên tệp. ... Nhập loại MIME
  5. trong hộp văn bản loại MIME.
  6. Nhấn OK.

1
Tôi đã thử nghiệm giải pháp này trong trường hợp .ts (Loại tập tin tập lệnh), bạn phải khai báo trong các trường Kiểu mô tả kiểu MIME (.ts) Tôi sử dụng văn bản / x.typescript làm kiểu mime
triển tự do


0

Xác minh rằng nhóm ứng dụng trong IIS (trong trường hợp IIS7 trở lên) được chọn là tích hợp. Trong trường hợp này, có lẽ thay đổi thành Cổ điển có thể giải quyết vấn đề này.


0

Liên quan đến Máy chủ 2016, tôi nên thêm:

  1. Chạy lệnh này: aspnet_regiis -lvtừ thư mục này: C:\Windows\Microsoft.NET\Framework\v2.0.50727\ Điều này cung cấp cho bạn cái nhìn tốt nhất về những gì đang diễn ra

  2. Trên Server 2016, việc cài đặt .net và iis ngoài chuỗi dường như không phải là vấn đề.

  3. Điều có nhiều khả năng là một vấn đề trên Server 2016 chỉ đơn giản là asp.net không được cài đặt trên máy.


0

Dành cho Windows Server 2016

  1. Server ManagerHình thức mở
  2. Manage -> Add Roles and Features
  3. Tiếp theo cho đến Featurestrang
  4. Kiểm tra WCF Servicestính năng với tất cả các tính năng phụ
  5. NextInstall

0

Ứng dụng PHP 7.3 IIS trên Windows Server 2012 R2

Đây là một quá trình hai bước đối với tôi.

1) Kích hoạt Dịch vụ WCF - với khởi động lại máy chủ

2) Thêm ánh xạ mô-đun FASTCGI

1)

Chuyển đến Trình quản lý máy chủ> Thêm vai trò và tính năng Chọn máy chủ của bạn từ nhóm máy chủ Chuyển đến Tính năng> Dịch vụ WCF Tôi đã chọn tất cả các danh mục sau đó cài đặt

2)

Truy cập IIS> đã chọn trang Trong ngăn giữa, chọn Trình xử lý ánh xạ Cửa sổ bên phải chọn Thêm Mô-đun ánh xạ

Trong cửa sổ chỉnh sửa:

Đường dẫn yêu cầu: * .php

Mô-đun: FastCgimodule

Có thể thực thi: Tôi đã duyệt php-cgi.exe trong thư mục PHP của tôi

Tên: PHP7.3

Bây giờ tôi nghĩ về nó. Có thể có một cách để thêm ánh xạ trình xử lý này vào cấu hình web để nếu bạn di chuyển trang web của mình sang máy chủ khác, bạn không phải thêm ánh xạ này nhiều lần.

EDIT: Đây rồi. Thêm phần này vào phần cấu hình web.

<add name="PHP-FastCGI" verb="*" 
  path="*.php" 
  modules="FastCgiModule"
  scriptProcessor="c:\php\php-cgi.exe" 
  resourceType="Either" />


0

Nếu bạn đang cố gắng xem một tập tin mở rộng, điều làm việc cho tôi là thêm một MIME Type: Phần mở rộng tên tệp : . loại MIME :text/plain

Điều này có thể có một số hàm ý MVC, đặc biệt là nếu bạn Static File Handlerở trên Extensionless...trình xử lý (dưới IIS/ Handler Mappings) nhưng có thể là một công việc xung quanh khi bạn chỉ cần điều này tạm thời, như kích hoạt SSL Certs.

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.