2010-11-26 2 views
3

Ich habe eine Webanwendung mit Global_Asax und einer benutzerdefinierten Fehlerseite. Wenn Benutzer versucht, eine ungültige Seite einzugeben, die nicht existiert, wird Application_Error in Global_asax ausgelöst und die Ausnahme wird protokolliert, was nicht wirklich eine Ausnahme ist (Sie können die Ausnahmendetails unten sehen). Ich möchte diesen Fall nicht in global_asax sondern in IIS behandeln. Ich habe auch versucht, ungültige Pfade einzugeben, die mit .asp und .html enden und sie funktionieren gut (Sie enden nicht in global_asax, sondern eher in der 404-Standardseite).Global_Asax Application_Error Fired statt Standard IIS7 404 Seite nicht gefunden Seite

Ich muss wissen, welche Einstellung ich von IIS7 Manager ändern muss.

Jede Hilfe wäre willkommen.

Fehler - Die Datei '/restricted/ff.aspx' existiert nicht.

System.Web.HttpException: Die Datei 'test.aspx' existiert nicht. bei System.Web.UI.Util.CheckVirtualFileExists (VirtualPath virtualPath) bei System.Web.Compilation.BuildManager.GetVPathBuildResultInternal (VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) bei System.Web.Compilation .BuildManager.GetVPathBuildResultWithNoAssert (Httpcontext Zusammenhang VirtualPath virtualPath, Boolesche noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) bei System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory (VirtualPath virtualPath, Httpcontext Zusammenhang Boolesche allowCro ssApp, Boolean noAssert) bei System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath (VirtualPath virtualPath, Typ requiredBaseType, Httpcontext Kontext, Boolean allowCrossApp, Boolean noAssert) bei System.Web.UI.PageHandlerFactory.GetHandlerHelper (Httpcontext Kontext, String request, VirtualPath virtualPath, String physicalPath) bei System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() bei System.Web.HttpApplication.ExecuteStep (IExecutionStep Schritt, Boolean & abgeschlossenSynchron

)
+0

ich das gleiche Problem habe.Ich habe eine benutzerdefinierte 404-Seite in meiner web.config definiert und sie wird nur für Nicht-ASPX-Dateien angewendet. – DavidJBerman

Antwort

2

Sie können eine dieser versuchen:

  1. bearbeiten die web.config Datei für benutzerdefinierte Fehler:

    <customErrors mode="On"> 
        <error statusCode="404" redirect="404.aspx"/> 
    </customErrors> 
    
  2. hinzufügen 404.aspx Seite und stellen Sie den Statuscode zu :

    public partial class _04 : System.Web.UI.Page 
    { 
        protected void Page_Load(object sender, EventArgs e) 
        { 
         Response.StatusCode = 404; 
        } 
    } 
    

Wenn es nicht Sie dies hilft versuchen, so gut (es könnte durch Ihre Masterpage zurückgesetzt werden):

protected override void Render(HtmlTextWriter writer) 
{ 
    base.Render(writer); 
    Response.StatusCode = 404; 
}