J'ai un module HTTP exécuté dans IIS 7 qui fournit un certain nombre de services de réécriture d'URL différents.IIS7 HTTPModule impossible de réécrire le chemin d'accès à une sous-application MVC
Par exemple:
public void Init(HttpApplication context)
{
...
HttpContext.Current.RewritePath(landingPage.NewPath,
string.Empty,
landingPage.NewQueryString +
((landingPage.NewQueryString == string.Empty) ? "" : "&") +
queryString);
...
}
J'ai une application sous avec sa propre piscine app écrite dans MVC: http://www.SomeSiteWithURLrewrite.com/SubMVCApplication/
Ce module fonctionne très bien sauf pour les applications MVC créées en tant que sous-applications.
Quand je fais une demande http qui sera réécrite: http://www.SomeSiteWithURLrewrite.com/Arbitrary/Path/To/Be/Rewritten
Je reçois une erreur HTTP 404.0 - Not Found
La page d'erreur 404 indique qu'il y avait un appel à "http://www.SomeSiteWithURLrewrite.com/Arbitrary/Path/To/Be/Rewritten" qui avait été réécrit dans le chemin physique "C: {RootDirectory} \ SubMVCApplication \ "avec le gestionnaire de" StaticFile ".
Je ne sais pas pourquoi le pipline ne reconnaît pas le "HttpContext.Current.RewritePath" comme une requête MVC. Est-ce parce que l'application MVC est dans sa propre application?
Comment puis-je appeler RewritePath (ou quelque chose de similaire) et ont IIS rendent un ASP.Net MVC page.in une application sous