Asp.net 当我有一个同名文件夹时,如何创建Web Api 2路由?

Asp.net 当我有一个同名文件夹时,如何创建Web Api 2路由?,asp.net,iis,asp.net-web-api,asp.net-web-api2,Asp.net,Iis,Asp.net Web Api,Asp.net Web Api2,在一个空的WebAPI2项目中,我删除了由项目模板生成的Controllers文件夹,并开始使用feature文件夹(而不是types文件夹) 我在Organizations文件夹中有一个Organizations controller,即 /organizations ----OrganizationsController.cs OrganizationsController很简单: [RoutePrefix("organizations")] public class Organizati

在一个空的WebAPI2项目中,我删除了由项目模板生成的Controllers文件夹,并开始使用feature文件夹(而不是types文件夹)

我在Organizations文件夹中有一个Organizations controller,即

/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}/组织时,这将导致403。IIS认为我正在尝试浏览组织目录,该目录已被IIS禁用。如何告诉IIS和/或Asp.Net停止尝试遵循物理结构,只考虑路由属性?

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

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