IIS正在尝试浏览目录以查找空路由属性

IIS正在尝试浏览目录以查找空路由属性,iis,asp.net-web-api2,attributerouting,Iis,Asp.net Web Api2,Attributerouting,我创建了一个具有属性路由的api控制器: [RoutePrefix("fonts")] public class InfoController : ApiController { [Route("")] [HttpGet] public IHttpActionResult GetSomeInfo() { return Ok(new { Name = "Some name" }); } } 我在项目根目录中有一个名为“字体”的文件夹 当我试

我创建了一个具有属性路由的api控制器:

[RoutePrefix("fonts")]
public class InfoController : ApiController
{
    [Route("")]
    [HttpGet]
    public IHttpActionResult GetSomeInfo()
    {
        return Ok(new { Name = "Some name" });
    }
}
我在项目根目录中有一个名为“字体”的文件夹

当我试图请求:

GET /fonts
IIS抛出一个错误:

HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.
如何修复此问题以调用控制器操作

更新: 下面是WebAPI配置类,它是VS创建的默认WebAPI配置

public static class WebApiConfig
    {
        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 }
            );
        }
    }
这一问题已在中得到解决

我必须设定:

routes.RouteExistingFiles = true;

是否启用了属性路由?是的,我更新了我的问题以显示web api配置。是的,这解决了问题。如果web api是与普通MVC混合的项目,则可能会出现连锁问题。为什么既有物理文件夹又有控制器?是的,它是混合的,但由于更好地组织项目,控制器的文件夹结构完全相同。此选项与APIController无关,而是与MVC控制器有关。