La razón por la que pregunto es porque IIS protege ciertas carpetas ASP.NET, como Bin, App_Data, App_Code, etc. Incluso si la URL no se asigna a una carpeta real del sistema de archivos, IIS rechaza una URL con un segmento de ruta igual a uno de los nombres mencionados.Enrutamiento ASP.NET: subsegmento literal entre tokens y valores de ruta con un carácter del subsegmento literal
Esto significa que no puedo tener una ruta como esta:
{controller}/{action}/{id}
... donde id puede ser cualquier cadena, por ejemplo,
Catalog/Product/Bin
Así, en lugar de desactivar esta medida de seguridad que estoy dispuesto a cambiar la ruta, usando un sufijo antes de la identificación, como los siguientes:
{controller}/{action}_{id} // e.g. Catalog/Product_Bin
{controller}/{action}/_{id} // e.g. Catalog/Product/_Bin
Pero estas rutas no va a funcionar si el id contiene el nuevo delímetro, _ en este caso, por ejemplo
// These URL won't work (I get 404 response)
Catalog/Product_Bin_
Catalog/Product/_Bin_
Catalog/Product/__Bin
¿Por qué? No lo sé, parece un error para mí. ¿Cómo puedo hacer que estas rutas funcionen, donde id puede ser cualquier cadena?
¿Es esto algo que podría lograr con [UrlRewrite] (http://www.iis.net/download/URLRewrite)? – R0MANARMY
Curiosamente, Catalog/Product/_bin_ funcionó para mí, pero Catalog/Product/__ Bin no funcionó. Estoy consultando con el desarrollador para averiguar por qué ese es el caso. Yo pensaría que debería funcionar también. – Haacked
¿Es posible que esto ocurre así cuando se hace algo así como **/0} {id ** tengo este problema en este momento y lo que parece ser 404 con algunos ID, pero no para otros ... –