簡體   English   中英

WebAPI部署到IIS,顯示404 Not Found

[英]WebAPI deployed to IIS, gives 404 Not Found

我正在嘗試在ASP.NET中創建一個簡單的WebAPI。 我把它放在IIS中。 當我嘗試瀏覽該站點時,一切都很好:

在此處輸入圖片說明

但是,當我嘗試從API獲取結果時,出現以下錯誤:

在此處輸入圖片說明

控制器:

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 }
            );
        }

您將其托管在/api訪問的應用程序上,因此需要一個附加的/api來匹配路由:

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

如果您不希望這樣做,則可以給api網站一個更合理的名稱,或者從路由中刪除api/ ,或者兩者都選。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM