0 votes

ASP.Net MVC 2: Mes actions de contrôleur ne sont pas appelées

Je ne suis pas sûr de ce qui s'est passé mais soudainement mes actions de contrôleur ne sont pas appelées. Ce projet fonctionnait bien toute la journée, mais maintenant lorsque je le lance (dans Cassini ou IIS 7), j'obtiens "Internet Explorer ne peut pas afficher la page". Aucune erreur de serveur, pas même d'erreur 404 ou 500.

En suivant le code, je peux voir que les routes sont enregistrées correctement lors du démarrage de l'application. Le constructeur et la méthode Initialize sont appelés sur le contrôleur correct puis..... rien. J'ai pu inspecter le requestContext entrant dans la méthode Initialize de mon contrôleur et le framework a récupéré les bonnes données de route. Cela se produit avec tous mes contrôleurs. Un autre projet MVC fonctionne parfaitement sur la même machine.

Je suis complètement perdu. Toute aide sera GRANDEMENT appréciée car j'ai une deadline au 1er décembre sur ce projet.

Merci, Jeff French

Voici une partie de mon code :

Mon contrôleur principal qui ne fonctionne pas :

public class HomeController : Controller
{
    public HomeController() : base()
    {

    }

    protected override void OnException(ExceptionContext filterContext)
    {
        base.OnException(filterContext);
    }

    protected override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);
    }

    protected override void Initialize(System.Web.Routing.RequestContext requestContext)
    {
        base.Initialize(requestContext);
    }

    protected override void HandleUnknownAction(string actionName)
    {
        base.HandleUnknownAction(actionName);
    }

    public ActionResult Index()
    {
        //if (!Request.IsAuthenticated)
        //    return RedirectToAction("LogOn", "Account");
        return View();
    }

    public ActionResult About()
    {
        return View();
    }
}

J'ai ajouté les remplacements pour pouvoir définir des points d'arrêt pour voir ce qui était appelé. Le constructeur est appelé puis la méthode Initialize. Le requestContext passé à la méthode Initialize contient les bonnes données de route. Dès que la méthode Initailize finit de s'exécuter, je reçois le message "Internet Explorer ne peut pas afficher la page".

Mon Global.asax :

public class MvcApplication : HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Par défaut", // Nom de la route
            "{tenant}/{controller}/{action}/{id}", // URL avec des paramètres
            new { tenant = "demo", controller = "Home", action = "Index", id = "" } // Paramètres par défaut
            );
    }

    public void RegisterViewEngines(ViewEngineCollection engines)
    {
    }

    protected void Application_AuthenticateRequest(object sender, EventArgs e)
    {
    }

    protected void Application_Start()
    {
        RegisterRoutes(RouteTable.Routes);
        RegisterViewEngines(ViewEngines.Engines);
    }
}

0voto

Jeff French Points 749

Eh bien, j'ai résolu mon problème et il s'avère que cela n'a rien à voir avec le MVC ou mon code, vraiment. Une inspection du Journal des événements système a révélé une série d'erreurs SSL sur ma machine locale. Les contrôleurs de mon projet étaient décorés avec l'attribut [RequreHttps] car j'ai besoin que ce site soit servi via SSL. Le certificat auto-signé fonctionnait bien pour les tests sur ma machine locale, mais soudain il ne fonctionne plus. Cependant, il s'agit d'un problème totalement séparé et, si nécessaire, je le posterai comme une question distincte. Merci à tous ceux qui ont examiné ce problème, j'apprécie votre temps.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X