ASP.NET MVC sur IIS 6 - générique - cartographie de la demande entrante ne correspond à aucun itinéraire
J'ai essayé de configurer ma Bêta 1 MVC application sur IIS 6 et impossible de le faire fonctionner correctement. J'ai ajouté un mappage de caractères Génériques pour les .net DLL isapi comme suggéré dans d'autres articles de blog, mais obtiens l'erreur suivante lorsque j'accède à la racine du site web:
The incoming request does not match any route.
..
[HttpException (0x80004005): The incoming request does not match any route.]
System.Web.Routing.UrlRoutingHandler.ProcessRequest(HttpContextBase httpContext) +147
System.Web.Routing.UrlRoutingHandler.ProcessRequest(HttpContext httpContext) +36
System.Web.Routing.UrlRoutingHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context) +4
HCD.Intranet.Web.Default.Page_Load(Object sender, EventArgs e) +81
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +33
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436
Je suis en utilisant la valeur par Défaut.page aspx fourni dans le modèle MVC de l'application qui réécrit l'accès à la racine du site web correctement.
public partial class Default : Page
{
public void Page_Load(object sender, System.EventArgs e)
{
HttpContext.Current.RewritePath(Request.ApplicationPath);
IHttpHandler httpHandler = new MvcHttpHandler();
httpHandler.ProcessRequest(HttpContext.Current);
}
}
Si j'essaie d'accéder à un parcours au sein de l'application, tels que /Projet, j'obtiens le standard IIS page d'erreur 404, pas la .net page d'erreur.
J'ai essayé d'ajouter la ligne suivante de mon site Web.config httpHandlers section:
<add verb="*" path="*" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Cela m'a donné une autre erreur .net page d'erreur 404.
J'ai ajouté ce qui suit à mon Global.asax, qui n'a rien fait:
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Context.Request.FilePath.Equals("/"))
Context.RewritePath("Default.aspx");
}
Je suis en utilisant le parcours suivant la configuration (utilise le repos de routage fourni par le MvcContrib projet):
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
SimplyRestfulRouteHandler.BuildRoutes(routes);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
Toutes les suggestions sont les grealy reçu comme je l'ai épuisé toutes les options pour le moment j'ai droit maintenant.
Merci beaucoup.
OriginalL'auteur Tim Peel | 2008-11-09
Vous devez vous connecter pour publier un commentaire.
OK, ai eu de travail.
Le problème est que j'ai été en utilisant msbuild automatisation pour emballer les fichiers que j'avais besoin de déployer, et j'ai été absent mondiale.asax.
De sorte qu'il ressemble si global.asax n'est pas déployé sur le site, alors aucun des itinéraires de se raccorder. Cela signifie que frapper la racine du site correctement le message d'erreur de La requête entrante ne correspond pas à n'importe quel itinéraire.', et toutes les autres demandes ne sont plus acheminés par le biais de votre contrôleur de classes, donc le résultat dans une page 404.
HTH.
Hmm, j'ai le même problème, et je suis aussi à l'aide des scripts de création de package des fichiers, mais mon Global.asax fichier est certainement présent dans le dossier web racine.
OriginalL'auteur
Voici ce que j'ai fait pour passer extensionless Url de travail avec IIS 6 et ASP.NET MVC Beta 1.
projet et de le compiler.
le répertoire de l'application.
site web, cliquez sur le HomeDirectory
onglet.
Dans les "Mappings" de l'onglet, cliquez sur
"Insérer..."
les cartes" étiquette Dans la zone de texte, tapez
"c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll"
l'existence du fichier", Cliquez sur OK
Vous ne devriez pas avoir besoin de changer de web.config. Vous avez juste besoin de la carte toutes les demandes à l'IIS à l'ASP.NET dll Isapi autrement ASP.NET n'obtiendrez jamais de ces demandes.
Merci pour cet affichage, en particulier le", Décocher la case "Vérifier l'existence du fichier", Cliquez sur OK à l'étape que je l'avais oublié.
OriginalL'auteur Haacked
Malheureusement IIS 6 a besoin d'un fichier d'extension à la carte à la demande pour le droit de gestionnaire qui signifie que vous aurez à utiliser l' .mvc suffixe sur votre contrôleur de noms, tels que /{controller}.mvc/{action}
Cependant, sont des façons de contourner cela en fonction de votre niveau de contrôle sur le serveur IIS 6. Veuillez consulter les pages suivantes pour plus d'informations
OriginalL'auteur TheCodeJunkie