繁体   English   中英

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

[英]Attribute Route with constraint works locally but fails when deployed

我有一个简单的属性路由,其中​​包含三个不同的路径段:

[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,参数本身也具有默认值):

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

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

应用程序相对路径列为~/v1/search/products ,应与网址格式v{version}/{category}/{service}匹配(“ version”也正确列出并带有int路由约束)。

这是一张带有完整调试信息的映像 ,以防万一。

[

感谢@Kiran Challa,我意识到,尽管类似,但是内置的WebAPI属性路由AttributeRouting.WebApi并不相同。 我切换到内置路由,现在一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM