当MS-DOS保留名称用于参数值时,IIS给出404

时间:2013-12-20 19:26:26

标签: iis asp.net-web-api dos

我有一个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也有这个问题:

有没有办法让这些名称用作路由参数值?

1 个答案:

答案 0 :(得分:4)

在System.web。

下的Web.config中添加
<httpRuntime relaxedUrlToFileSystemMapping="true" />