【问题标题】:How can I create a Web Api 2 Route when I have a folder of the same name?当我有同名文件夹时,如何创建 Web Api 2 路由?
【发布时间】:2016-11-05 02:23:39
【问题描述】:

在一个空的 Web Api 2 项目中,我删除了项目模板生成的 Controllers 文件夹,并开始使用功能文件夹(而不是类型文件夹)。

我在一个组织文件夹中有一个组织控制器,即

/organizations
----OrganizationsController.cs

OrganizationsController 很简单:

[RoutePrefix("organizations")]
public class OrganizationsController : ApiController
{
    public const string GetAllOrganizationsRouteName = "GetAllOrganizations";
    [HttpGet]
    [Route(Name = GetAllOrganizationsRouteName)]
    public IHttpActionResult GetAllOrganizations()
    {
        return Ok(Guid.NewGuid().ToString());
    }
}

这会在请求 {base}/organizations 时导致 403。 IIS 认为我正在尝试浏览 IIS 禁用的组织目录。我如何告诉 IIS 和/或 Asp.Net 停止尝试遵循物理结构而只尊重 Route 属性?

【问题讨论】:

    标签: asp.net iis asp.net-web-api asp.net-web-api2


    【解决方案1】:

    我目前正在通过将 /web 文件夹引入项目根目录来解决此问题。 OrganizationsController 现在位于 /web/organizations/OrganizationsController。这很好用,因为 /organizations 路由不再匹配物理目录。如果有办法通过配置关闭它,请发布另一个答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-24
      • 2013-10-17
      • 2017-12-25
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 2012-01-30
      相关资源
      最近更新 更多