2014-09-30 14 views
8

Tôi vừa cố gắng triển khai một ứng dụng WebApi trên Windows 2008R2 với IIS 7.0, với IIS Manager bị ảnh hưởng cho đến bây giờ.Ứng dụng WebApi: Lỗi 404.0, Trình xử lý StaticFile

Ứng dụng chạy trên máy chủ dev của chúng tôi (cùng phiên bản Win và IIS) mà không gặp rắc rối. Trên máy chủ triển khai,

  • .NET Framework 4.5 được cài đặt,
  • ASP.NET Tính năng được cài đặt và
  • xác thực Windows được cài đặt

Khi tôi gọi một URL nên bản đồ để ASP.NET, lỗi là

 HTTP Error 404.0 

     Module IIS Web Code 
Notification MapRequestHandler 
     Handler StaticFile 
    Error code 0x80070002 
Requested URL http://localhost:80/myapp/api/GetUserConfig 
Physical Path C:\inetpub\wwwroot\myapp\api\GetUserConfig 
Logon Method Negotiate 
    Logon User ADDOMAIN\Administrator 

Handler StaticFile có vẻ quan trọng - theo như tôi có thể nói, nguyên nhân là ASP.NET không xử lý đúng URL. Tôi có thể bắt đầu tìm kiếm gốc thực sự của vấn đề này ở đâu?

Tôi nên thêm nhiều triển khai khác, tất cả trong môi trường Windows 2012, đã thành công.

+0

bạn đã xem xét các tập tin cấu hình? Mọi thứ có vẻ theo thứ tự không? –

+0

Bạn đã bật tính năng nội dung tĩnh của iis chưa? Xem blog này để biết cách làm: http://brendan.enrick.com/post/IIS-7-Not-Serving-Static-Files – Avner

+0

Tôi đã đọc sai câu hỏi của bạn. Có vẻ như một bản sao có thể có của https://stackoverflow.com/questions/9703090/http-404-page-not-found-in-web-api-hosted-in-iis-7-5 – Avner

Trả lời

1

Microsoft chắc chắn nên đặt phiên bản tại "ASP.NET" Tính năng trong trình cài đặt.

Khi bạn cài đặt tính năng ASP.NET trên Windows 2008, điều này cho phép ASP.NET 3.5, trong khi tôi yêu cầu ASP.NET 4.

Vì vậy, sau khi đã cài đặt .NET Framework v4, tôi sẽ đi về phía trước và đăng ký ASP NET 4 với IIS:

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

Nguồn:

https://alexanderzeitler.com/articles/HTTP-Error-4040---Not-Found-(MapRequestHandler--StaticFile)-when-deploying-WCF-Web-API-on-IIS-7x/

+0

Chỉ cần thông báo: liên kết trong câu trả lời của bạn đã chết –

+0

@ HoàngLong Cảm ơn, tôi đã cập nhật câu trả lời cho phù hợp. – Alexander

+0

Tôi đang gặp vấn đề này; IIS đang xử lý yêu cầu như thể nó là một yêu cầu tệp tĩnh, mặc dù nó rõ ràng ánh xạ tới một hành động điều khiển. Nhưng tôi có một ứng dụng web api khác hoạt động chính xác trên cùng một máy chủ bằng cách sử dụng cùng một hồ bơi ứng dụng, cùng phiên bản .net, v.v., vì vậy tôi không nghĩ rằng tôi thiếu bất kỳ phần mềm phía máy chủ nào. Các tệp Global.asax và Web.config và WebApiConfig.cs giống hệt nhau. Hành động điều khiển mà tôi đang ánh xạ tới không yêu cầu bất kỳ tham số nào. Tôi chỉ không hiểu điều gì có thể gây ra điều này. – Shavais

0

tôi đã có một vấn đề tương tự như sau sử dụng Owin. Xóa các tập tin ASP.NET tạm thời đã sửa nó. Hy vọng điều này sẽ giúp một ai đó.

Các vấn đề liên quan