2010-11-18 18 views
2

C'est la première fois que je déploie une application MVC2 (.NET4) sur IIS7.5. J'utilise StructureMap et Fluent NHibernate, et tout fonctionne bien localement en utilisant la sécurité intégrée. L'application affiche la première page (controllername/pagename), mais renvoie une erreur sur la suivante (controllername/pagename/id).iis7.5 mvc2 404 et 500.24 erreur

J'ai couru %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir. HttpRedirection et HttpExceptions sont activés.

Ceci est la 404 erreur de View Source:

[HttpException]: The controller for path '/conrollername/pagename/1' was not found or does not implement IController.
at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType)
at CustomerResponses.Infrastructure.StructureMapControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) in C:\Apps\Development Source\CustomerResponsesApplication\trunk\CustomerResponses\Infrastructure\StructureMapControllerFactory.cs:line 19
at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName)
at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory)
at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Un autre lien me donne 500,24 erreur:

HTTP Error 500.24 - Internal Server Error
An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.

Quelqu'un at-il des idées? Merci

Partie sur web.config

system.webServer - section

<validation validateIntegratedModeConfiguration="false"/> 
<modules runAllManagedModulesForAllRequests="true"/> 

<handlers> 
    <add name="UrlRoutingHandler" 
    preCondition="integratedMode" 
    verb="*" path="UrlRouting.axd" 
    type="System.Web.HttpForbiddenHandler, 
     System.Web, Version=2.0.0.0, Culture=neutral, 
     PublicKeyToken=b03f5f7f11d50a3a" /> 
</handlers> 

<!--<handlers> 
    <remove name="MvcHttpHandler" /> 
    <add name="MvcHttpHandler" preCondition="integratedMode" verb="*" path="*.mvc" type="System.Web.Mvc.MvcHttpHandler" /> 
    <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
</handlers>--> 

Global.asax

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}"); 
routes.IgnoreRoute("{resource}.gif/{*pathInfo}"); 
routes.IgnoreRoute("{*datepick}", 
    new { datepick = @"(.*/)?jquery.datepick.css(/.*)?" }); 
    // ignore datepick.css file 
routes.IgnoreRoute("{*favicon}", 
    new { favicon = @"(.*/)?favicon.ico(/.*)?" }); 
routes.IgnoreRoute("{*chevron}", 
    new { chevron = @"(.*/)?Images/Chevron.gif(/.*)?" }); 
routes.IgnoreRoute("{*iconhome}", 
    new { iconhome = @"(.*/)?Images/IconHome.gif(/.*)?" }); 

routes.MapRoute("test", "testroute", 
    new { controller = "compresponses", action = "list" }); 

routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new { 
     controller = "compresponses", 
     action = "list", 
     id = UrlParameter.Optional 
    } // Parameter defaults    
); 

Répondre

0

L'un des problèmes est la suivante: votre fichier web.config contient trop d'informations. IIS 7.5 lorsqu'il s'exécute en mode interactif ne nécessite aucun paramètre supplémentaire. Je recommanderais de créer une application mvc vierge et de la publier sur le serveur web. aussi j'ai vu l'erreur:

[HttpException]: Le contrôleur pour le chemin '/ conrollername/pagename/1' n'a pas été trouvé ou ne met pas en œuvre iController. à System.Web.Mvc.DefaultControllerFactory.GetControllerInstance (RequestContext requestContext, type controllerType) à

où il est dit que la dll system.web ou system.web.mvc n'est pas référencée à partir du projet.

Ma solution (peut-être pas le meilleur) mais est: Bouton droit sur le projet où l'erreur s'est produite et copier les dll locales et cela devrait aider avec l'erreur.

comme erreur: Un autre lien me donne erreur 500.24: Erreur HTTP 500.24 - Erreur interne du serveur Un paramètre ASP.NET a été détecté qui ne s'applique pas en mode pipeline géré intégré. Le meilleur est d'avoir installé la console et d'ouvrir le projet à l'aide de la console iis.

0

Changer vos propriétés pool d'applications:

.NET Framework Version 
-- .NET Framework *version* 

Pipeline Mode 
-- Classic