【问题标题】:Adding WebApi to existing website in IIS将 WebApi 添加到 IIS 中的现有网站
【发布时间】:2015-11-25 16:13:10
【问题描述】:

我有一个托管在 IIS 中的 Angular 网站。我正在添加 Asp.net WebApi 2 作为服务器。

我所做的是将我的 IIS 默认网站指向 Angular 网站的根目录。一切都在那里工作。然后我将 WebApi 作为应用程序添加到站点。但是我的问题是,由于 WebApi 的默认路由以 /api 开头,并且在将 WebApi 添加为应用程序时我必须提供别名,因此我的 URL 最终看起来像这样:(假设我的 WebApi 应用程序的别名是“api”)

http://localhost/api/api/controller

如何将 WebApi 添加到现有站点并在没有双 '/api/ 的情况下拥有我的路由?

我可以像这样为我的控制器提供自定义路由:

[RoutePrefix("controller")]

这会覆盖从“/api/controller”到“/controller”的路由,从而导致正确的行为。但这感觉很老套,我必须对每个控制器都这样做。

【问题讨论】:

    标签: iis asp.net-web-api


    【解决方案1】:

    在配置 WebApi 路由时,我设法通过删除 routeTemplate 属性中“{controller}”之前的“/api/”来解决问题:

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

    【讨论】:

      猜你喜欢
      • 2017-07-22
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多