이유는 IIS가 Bin, App_Data, App_Code 등의 특정 ASP.NET 폴더를 보호하기 때문입니다. URL이 실제 파일 시스템 폴더에 매핑되지 않더라도 IIS는 언급 된 이름 중 하나와 동일한 경로 세그먼트가있는 URL을 거부합니다.ASP.NET 라우팅 : 토큰 사이의 리터럴 하위 세그먼트 및 리터럴 하위 세그먼트의 문자가있는 경로 값
{controller}/{action}/{id}
... ID가 들어있는 문자열이 될 수 있습니다 :
이 내가이 같은 경로를 가질 수 없습니다 의미
Catalog/Product/Bin
그래서, 대신에이 보안 조치를 해제의 나는이 같은 아이디 전에 접미사를 사용하여 경로를 변경 기꺼이 :
{controller}/{action}_{id} // e.g. Catalog/Product_Bin
{controller}/{action}/_{id} // e.g. Catalog/Product/_Bin
그러나이 노선은 경우 작동하지 않습니다 id는 새로운 delimeter를 포함합니다.이 경우 _
// These URL won't work (I get 404 response)
Catalog/Product_Bin_
Catalog/Product/_Bin_
Catalog/Product/__Bin
왜? 모르겠어, 나에게 버그처럼 보인다. 어떻게이 경로가 작동하도록 할 수 있습니까? id는 어떤 문자열이 될 수 있습니까? ? *, :
[UrlRewrite] (http://www.iis.net/download/URLRewrite)를 사용하여이 작업을 수행 할 수 있습니까? – R0MANARMY
흥미롭게도 Catalog/Product/_bin_는 나를 위해 일했지만 Catalog/Product/__ Bin이 작동하지 않았습니다. 왜 그런지 개발자에게 확인하고 있습니다. 나는 그것이 또한 효과가 있다고 생각할 것이다. – Haacked
**/0 {id} **와 같은 작업을 수행 할 때도 이와 같은 문제가 발생할 수 있습니다 ** 현재이 문제가 있으며 일부 ID가있는 것으로 보이지만 다른 ID가 아닌 것 같습니다 ... –