He intentado configurar mi aplicación Beta 1 MVC en IIS 6 y no puedo ejecutarla correctamente. He añadido una asignación de comodín a la DLL .net isapi como se sugiere en otras entradas del blog, pero sale el siguiente error cuando accedo a la raíz del sitio web:ASP.NET MVC en IIS 6 - asignación de comodines: la solicitud entrante no coincide con ninguna ruta
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
estoy usando la página Default.aspx suministrado en el Aplicación de plantilla MVC que reescribe el acceso a la raíz del sitio web correctamente.
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 trato y acceder a una ruta dentro de la aplicación, como por ejemplo/Proyecto, consigo el estándar de IIS página de error 404, no la página de error .net.
He intentado añadir la siguiente línea a mi sección httpHandlers Web.config:
<add verb="*" path="*" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Esto me dio un error diferente - la página de error 404 .net.
que añade lo siguiente a mi Global.asax, que no hizo nada:
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Context.Request.FilePath.Equals("/"))
Context.RewritePath("Default.aspx");
}
estoy usando la siguiente configuración de ruta (utiliza el enrutamiento de descanso suministrado por el proyecto MvcContrib):
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
SimplyRestfulRouteHandler.BuildRoutes(routes);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
Cualquier sugerencia sería recibida greyy ya que he agotado todas las opciones por el tiempo que tengo ahora.
Muchas gracias.
Perfecto: este fue mi problema. Estaba compilando a través de NAnt/MSBuild y no estaba incluido el archivo Global.asax. Tener ese archivo allí resuelve todo. –
Hmm, tengo el mismo problema, y yo también estoy usando scripts de compilación para empaquetar los archivos, pero mi archivo Global.asax definitivamente está presente en la carpeta raíz web. –