当我有一个同名文件夹时,如何创建Web Api 2 Route?

时间:2016-07-03 02:52:10

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

在一个空的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属性?

1 个答案:

答案 0 :(得分:0)

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