我正在尝试在 ASP.NET 中创建一个简单的 WebAPI。我把它放在IIS里了。当我尝试浏览该网站时,一切都很好:
但是当我尝试从 API 获取结果时,出现此错误:
Controller :
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);
}
}
WebApi配置:
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/
,或者两者兼而有之。
关于c# - WebAPI 部署到 IIS,给出 404 Not Found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275235/