具有约束的属性路由在本地工作但在部署时失败

时间:2014-06-20 18:58:48

标签: c# asp.net-web-api attributerouting

我有一个简单的属性路由,有三个不同的路径段:

[HttpGet]
[GET("v{version:int}/{category}/{service}")]
public async Task<HttpResponseMessage> RouteMessage(
    string category, string service, int version = 1)
{
}

虽然路由在本地开发时有效,但在将其部署到IIS服务器时失败(404)。

失败的网址:

http://example.com/v1/search/products?client=test

我确定这不是IIS问题,因为我仍然可以使用非属性路由访问服务(请注意,即使v1不是int,参数本身也有默认值):< / p>

http://example.com/api/route/?version=v1&category=search&service=products&client=test

我已经安装了Route Debugging,并且正如预期的那样,我的路线匹配属性路线​​,即使它应该。

app相对路径列为~/v1/search/products,它应与url格式v{version}/{category}/{service}匹配(“version”也正确列出了int路由约束)。

Here's an image,如果有帮助,请提供完整的调试信息。

 [

1 个答案:

答案 0 :(得分:0)

感谢@Kiran Challa,我意识到,虽然相似,但内置WebAPI attribute routingAttributeRouting.WebApi不同。我切换到内置路由,现在一切正常。