Je tente de configurer des erreurs personnalisées à l'aide d'IIS pour une application de structure .net (créée à l'aide de Visual Studio 2015 si cela est pertinent.) Notre serveur est un serveur Windows 2012 R2 . J'ai vu d'autres solutions de débordement de pile à ce problème mais aucun ne l'a résolu. J'ai des erreurs personnalisées définies sur sur dans ma configuration Web et dans les paramètres de la fonctionnalité des gestionnaires de serveur. Le chemin d'accès à la page d'erreur personnalisée (page HTML statique) est défini dans le gestionnaire de serveur pour tous les codes d'état d'erreur. Certaines piles précédentes suggéraient de désactiver python, donc j'ai essayé, mais ça n'a rien résolu. Ma config web ressemble:Erreur d'exécution: Une erreur s'est produite lors de l'exécution de la page d'erreur personnalisée
<?xml version="1.0"?>
<!--other web config-->
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</configSections>
<appSettings>
<add key="webpages:Version" value="3.0.0.0"/>
<add key="webpages:Enabled" value="false"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
<system.web>
<httpRuntime targetFramework="4.5"/>
<customErrors defaultRedirect="/Views/Home/customError.cshtml" mode="On"/>
<compilation debug="true"/>
</system.web>
<system.webServer>
<!--<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="500" subStatusCode="-1" responseMode="ExecuteURL" path="/Views/Home/customError.cshtml" />
</httpErrors>-->
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed"/>
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<connectionStrings>
<add name="Entities" connectionString="***" providerName="System.Data.EntityClient"/>
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v12.0"/>
</parameters>
</defaultConnectionFactory>
</entityFramework>
</configuration>
Je ne vois pas de contenu statique double dans la configuration Web. J'ai ajouté toutes les redirections de la page d'erreur iis directement dans le gestionnaire de serveur pour l'application.
Lorsque j'exécute l'application localement et que j'essaie de déclencher une erreur 404, j'obtiens l'erreur d'exécution: Une exception s'est produite lors du traitement de votre demande. En outre, une autre exception s'est produite lors de l'exécution de la page d'erreur personnalisée pour la première exception. La demande a été résiliée. Lorsque je l'exécute via le serveur (en essayant également de déclencher une erreur 404), il charge à la page précédente.
Je ne sais pas comment résoudre ce problème. Toute idée serait géniale! Je vous remercie!
partie pertinente du contrôleur:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Net;
using System.Net.Mail;
using BE.Models;
using BE.ViewModels;
namespace BE.Controllers
{
public class HomeController : Controller
{
private Entities db = new Entities();
// Uri Route: "~/Home"
// View Route: "/Views/Home/Index.cshtml"
public ActionResult Index()
{
return View();
}
// Route: "~/Home/customError"
// View Route: "/Views/Home/customError.cshtml"
public ActionResult customError()
{
return View();
}
public ActionResult About()
{
return View();
}
public ActionResult Contact()
{
return View();
}
public ActionResult Resources()
{
return View();
}
}
}
I a également modifié les Global.asax.cs pour ressembler à:
namespace BE
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
RouteTable.Routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new {
controller = "Home",
action = "Index",
id = UrlParameter.Optional
}
);
};
};
Cependant, cela me donne des erreurs de.
Vous pointez sur un fichier '.cshtml' au lieu d'un fichier HTML approprié. Peut-être que c'est le problème? – DavidG