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);
}
}