Các cuộc gọi Api IIS 7.5 sẽ không hoạt động (HTTP 404)


1

API mà tôi đang xây dựng đang chạy trong IIS express trong Visual studio và trên máy chủ thử nghiệm sử dụng cùng IIS với máy chủ trực tiếp. Trên cả IIS express và máy chủ thử nghiệm đều hoạt động tốt, nhưng khi chúng tôi đưa nó lên máy chủ trực tiếp thì nó vẫn trả về phản hồi 404.

Cho đến nay tôi đã tìm thấy bài viết này: Giải quyết 404 trong IIS Express và tìm thấy lời giải thích trong bài viết này: Yêu cầu Lọc trong IIS 7

Tất cả các cài đặt theo như tôi biết dafault, nhưng tôi cần kiểm tra lỗi gì hơn các động từ?

EDIT: Có vẻ như nó phải thực hiện với một cài đặt trong web.config. Chế độ đường ống được quản lý được đặt thành Tích hợp (chế độ cổ điển cũng sẽ gây ra sự cố này) và được thêm: <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> nguồn . Bây giờ api đang trả về lỗi http 500, nhưng đó là điều tôi phải sửa trong mã.


Những thành phần IIS nào liên quan đến ASP bạn đã cài đặt?
Frank Thomas

Chúng tôi đã cài đặt .net 2.0 và 4.0. Api hiện đang sử dụng .net 4.0
Quispie

Tôi đang đề cập đến các thành phần Dịch vụ Web World Wide IIS trong trình cài đặt Tính năng của Windows (trên các máy trạm trong appwiz.cpl -> Bật hoặc Tắt Tính năng của Windows -> Dịch vụ Web World Wide). Cụ thể, hãy đảm bảo rằng các Tính năng HTTP phổ biến -> Nội dung tĩnh được chọn, Ngoài các Tính năng phát triển ứng dụng -> .Net Khả năng mở rộng, ASP.NET và cả hai tính năng ISAPI. Ngoài ra, .net 4 có xuất hiện dưới dạng tùy chọn cho nhóm Ứng dụng của bạn không? nếu không chạy aspnet_regiis -r(từ dấu nhắc lệnh của studio trực quan) để đăng ký ánh xạ tập lệnh / trình xử lý cho .net.
Frank Thomas

Tôi đã cài đặt .net 4.0 thực sự với aspnet_regiis -ir và có thể chọn nó từ nhóm Ứng dụng. Nội dung tĩnh, khả năng mở rộng .Net, ASP.NET và cả hai tính năng ISAPI được cài đặt.
Quispie

Câu trả lời:


0

Sau khi hỏi google từ lâu tôi đã tìm thấy trang web này .

Cuối trang tôi phải đặt đường dẫn svc-Integration-4.0 "*"thay vì mặc định, "*.svc"điều này đã giải quyết vấn đề cho tôi!

Chỉnh sửa mã @Scott H Web.config đã thêm:

<configuration>
 <system.webServer>
  <handlers>
   <remove name="svc-Integrated-4.0" />
   <add name="svc-Integrated-4.0" path="*" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
  </handlers>
 </system.webServer>
</configuration>

1
Liên kết dường như bị hỏng, bạn có thể điền vào câu trả lời của bạn?
Scott H
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.