2

J'ai un problème de routage très étrange.ASP.NET MVC 3 Problème de routage dans la zone

J'ai un site ASP.NET MVC 3 utilisant des zones. je la configuration des routes suivantes dans la zone Actifs:

public override void RegisterArea(AreaRegistrationContext context) 
{ 
    context.MapRoute(
     null, 
     "Assets/{controller}/{action}/{code}", 
     null, 
     new { code = @"(\w{2,3}$)" } 
    ); 

    context.MapRoute(
     "Assets_default", 
     "Assets/{controller}/{action}/{id}", 
     new { action = "Index", id = UrlParameter.Optional } 
    ); 
} 

Lorsque je demande aux adresses suivantes, il fonctionne parfaitement

http://site.com/Assets/Gallery/GetByCode/AEP 
http://site.com/Assets/Gallery/GetByCode/MEC 
http://site.com/Assets/Gallery/GetByCode/GP 
http://site.com/Assets/Gallery/GetByCode/BR2 
http://site.com/Assets/Gallery/GetByCode/ZZZ 
http://site.com/Assets/Gallery/GetByCode/123 

Mais quand je demande cette URL je reçois un « 404 - ressource peut » t être trouvé » erreur

http://site.com/Assets/Gallery/GetByCode/PRN 
http://site.com/Assets/Gallery/GetByCode/prn 

Toutes les autres URL que j'ai essayé des œuvres - il semble être juste qui a des problèmes PRN.

J'ai placé un point d'arrêt au début de l'action GalleriesController> GetByCode, et la route PRN n'essaie même pas d'entrer l'action (comme le suggère l'erreur 404).

Est-ce que quelqu'un a des idées pour lesquelles PRN ne fonctionne pas sur la route? Ou quoi d'autre je peux essayer d'enquêter?

Merci pour votre aide Saan

+0

Votre action 'Index' Touchés à la place? – simonlchilds

+0

Non - L'index n'est pas touché – Saan

+0

Avez-vous essayé de supprimer le dispositif de retenue d'expression régulière sur l'itinéraire? Avez-vous également essayé de placer les paramètres dans le même ordre que dans la route par défaut? – simonlchilds

Répondre

2

Cela peut être lié au fait que vous ne pouvez pas créer le dossier « Prn » sur le système de fichiers Windows. Je suppose que IIS utilise le système de fichiers Windows de telle sorte que ce problème résonne avec le problème décrit ci-dessus.

En fait, ce poste peut vous aider: ASP.NET MVC Routing vs. Reserved Filenames in Windows