Je vois une différence dans la sortie d'Url.RouteUrl entre ma machine de développement et mon serveur de déploiement. Je cours Visual Studio 2008 et ma boîte de déploiement est Windows 2003 Server. J'ai configuré le Global.asax.cs à exécuter avec l'extension .aspx dans mes tables de routage. Cependant, lorsque j'utilise la route nommée "Search-Basic", il n'y a pas de sortie Url.RouteUrl ("Search-Basic", nouveau {category = "Test", searchExpression = "rechercher ceci"})Asp.Net MVC Url.RouteUrl Problème sous Windows 2003 par rapport à Visual Studio 2008
Voir code:
<%= Url.RouteUrl("Search-Basic", new {category = "test", searchExpression="search this"}) %>
Global.asax.cs code:
// routes for IIS 6 and version below
routes.MapRoute(
"Search-Basic",
"Search.aspx/Basic/{category}",
new { controller = "Search", action = "Basic", category = "All" }
);
routes.MapRoute(
"Default", // Route name
"{controller}.aspx/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
routes.MapRoute(
"Root",
"",
new { controller = "Home", action = "Index", id = "" }
);
Sur ma boîte de développement, je reçois le résultat attendu: /Search.aspx/Basic/Test?searchExpression=search%20this
Cependant, sur mon serveur de déploiement Je n'ai pas de sortie du tout. Une différence peut-être est que j'exécute l'application dans un répertoire virtuel sur mon serveur de déploiement; quelque chose comme: http://testmachine.com/sm/testappname/ où "/ sm" est un répertoire virtuel et "/ testappname" est un répertoire virtuel contenant mon application.
Des idées?
Merci beaucoup.
Phil Hack a un outil sur son blog qui peut vous aider avec le débogage de route http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx – cgreeno
Lorsque j'utilise le débogueur de routage et le type Dans /Search.aspx/Basic, le routage est géré via la route nommée "Search-Basic". Cependant, je reçois toujours
D'accord, ces erreurs peuvent même ne pas être liées à MVC. On dirait que le répertoire virtuel de ma configuration de serveur de développement/sm n'est pas du tout un répertoire virtuel. Ou au moins, il est défini comme un objet IIsConfigObject dans IIS 6. Cela semble être la cause de mes différences dans la sortie d'URL. –