2012-03-02 41 views
6

Tôi đang cố gắng sử dụng api asp.net web trong biểu mẫu web với visual studio 2010 (sp1) tôi đã làm điều này bước http://myrandomykien.blogspot.com/2012/02/simplest-web-api-site-with-nuget.htmlASP.NET Web Api trong Web tạo

Khi tôi sử dụng visual studio phát triển máy chủ nó hoạt động, nhưng khi tôi đang sử dụng iis 7.5 tôi nhận được một lỗi HTTP 404.0 - Không tìm thấy.

Sửa

Đây là tôi Global-tuyến Asax

protected void Application_Start(object sender, EventArgs e) 
     { 
      RouteTable.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = System.Web.Http.RouteParameter.Optional } 
      ); 
     } 

Đây là lớp api

public class GreetingController : ApiController 
{ 
    public string GetGreeting(string id) 
    { 
     return String.Format("Hello {0}", id); 
    } 
} 
+0

bạn có thể cung cấp thêm thông tin? không có nhiều để tiếp tục ngay bây giờ. – marcind

Trả lời

6

Bạn phải chắc chắn rằng các yêu cầu extensionless được chuyển đến ASP.NET được thực hiện theo mặc định bởi máy chủ phát triển của bạn chứ không phải IIS.

Có một số phương pháp có thể có.

Trước tiên, bạn có thể thêm runAllManagedModulesForAllRequests="true" vào phần mô-đun của system.webServer. Một số người cho rằng có các phương pháp tốt hơn, bạn có thể theo dõi chúng:

http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html

+0

runAllManagedModulesForAllRequests = "true" hoạt động !!! Cảm ơn Wiktor – sebacipo

+3

Nếu ai đó đang sử dụng iis ở ​​chế độ Cổ điển, giải pháp của Wiktor không hoạt động, bạn phải cài đặt bản cập nhật extensionLess cho iis. http://support.microsoft.com/kb/980368 – sebacipo