2016-05-17 11 views
1

ASP.NETで簡単なWebAPIを作成しようとしています。私は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」と呼ばれているため、特異なのでProductではなくProductが必要です。 – CodeCaster

+0

私はそれを試しましたが、私は同じ結果を得ます – Pachu

関連する問題