Web Api控制器路由随机停止工作

时间:2015-09-30 13:52:51

标签: c# asp.net asp.net-web-api2 asp.net-routing

我有一个名为MediaController的ApiController,其路由通过[Route]属性映射到方法。例如:

[Route("v1/libraries/{libraryKey}/media"), HttpGet]
public ResponseObj Index(string libraryKey) 
{
    ...
}

这些路线通过config.MapHttpAttributeRoutes();

在我的WebApiConfig.cs中注册

我遇到的问题是这个特定控制器的路由(所有其他路由都很好且不受影响)有时会随机停止一起工作,尝试转到一个会触发错误并显示以下消息

{
    "message": "No HTTP resource was found that matches the request URI 'http://localhost:8100/v1/libraries/libraryKey/media'.",
    "messageDetail": "No route data was found for this request."
}

我发现(暂时)修复此问题的唯一方法是从我的计算机中完全删除项目的git存储库,然后重新下载它。我不知道为什么会这样,因为删除前后的文件没有明显的区别。

1 个答案:

答案 0 :(得分:3)

管理以找出原因。我们在项目的bin目录中有一个流氓.dll文件(git忽略了它,因此为什么看起来没有文件差异,并且删除整个repo作为临时修复)被单独引用项目,主要由项目引用。

这个.dll包含一个名称相同的控制器(MediaController),但差异路由,所以一些未知的情况会导致控制器的路由注册代替预期的主项目&#39 ; s MediaController路线。