2016-05-17 2 views
1

Я пытаюсь создать простой WebAPI в ASP.NET. Я положил его в IIS. Когда я пытаюсь просматривать сайт это все хорошо:WebAPI развернут в IIS, дает 404 не найден

enter image description here

Но когда я пытаюсь получить результат от API, я получаю эту ошибку:

enter image description here

Контроллер:

public class ProductController : ApiController 
    { 
     Product[] products = new Product[] 
     { 
      new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 }, 
      new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M }, 
      new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M } 
     }; 

     public IEnumerable<Product> GetAllProducts() 
     { 
      return products; 
     } 

     public IHttpActionResult GetProduct(int id) 
     { 
      var product = products.FirstOrDefault((p) => p.Id == id); 
      if (product == null) 
      { 
       return NotFound(); 
      } 
      return Ok(product); 
     } 
    } 

WebApiConfig:

public static void Register(HttpConfiguration config) 
     { 
      // Web API configuration and services 

      // Web API routes 
      config.MapHttpAttributeRoutes(); 

      config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 
     } 

ответ

2

Вы разместить его на приложения, доступ к которым /api, поэтому необходимо дополнительное /api в соответствии с маршрутизацией:

http://localhost:6060/api/api/Product 

Если вы не хотите этого, то либо дать api сайт более осмысленное имя , удалите api/ с маршрута или и то, и другое.

+0

Я по-прежнему получаю ту же ошибку – Pachu

+0

Это потому, что ваш контроллер называется 'ProductController', единственный, поэтому вам нужен продукт, а не продукты. – CodeCaster

+0

Я пробовал, но все же, я получаю тот же результат – Pachu