我有一个ASP.NET Web API应用程序,我有一个带有一个字符串参数的操作,例如:
[HttpGet]
public HttpResponseMessage GetById(string id)
{
// ...
}
相应注册:
config.Routes.MapHttpRoute("Resources", "api/resources/{id}", new
{
controller = "Resources",
action = "GetById"
});
现在,当有人拨打 api / resources / con 时,IIS会提供404.几乎任何其他值都可以,例如 api / resources / something 或 api /资源/无
我们已查看并发现reserved MS-DOS Device Driver Names都不能用作参数值。
这似乎是一个全球性问题,因为MSDN也有这个问题:
有没有办法让这些名称用作路由参数值?
答案 0 :(得分:4)
在System.web。
下的Web.config中添加<httpRuntime relaxedUrlToFileSystemMapping="true" />