Frage

Ich habe eine Website, die den Benutzer aus nach einer gewissen Zeit der Inaktivität loggt. Dies wird durch den folgenden Code getan:

 window.location = "./logout.aspx?timeout=true";

Aber dreimal in den letzten paar Tagen habe ich die folgende Ausnahme erhalten:

System.Web.HttpException

The file '/NIR310/Person/logout.aspx' does not exist.

   at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
   at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
   at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
   at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
   at System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)
   at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
   at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Zuerst der Fehler schien offensichtlich, da logout.aspx nicht in der „Person“ Ordner enthalten ist, aber auf der obersten Ebene, aber warum es passiert nicht jedes Mal, wenn ich von der „Person“ -Ordner erhalten abgemeldet? Ich habe die gleiche Routine immer und immer wieder getan, aber der Fehler tritt fast nie.

Irgendwelche Ideen?

War es hilfreich?

Lösung

können Sie sicherstellen, dass Sie immer den richtigen Pfad root auf Ihre Website haben, indem Sie den vollständigen aufgelösten Pfad in der Seite zu schreiben wie folgt (vorausgesetzt, Ihre Logout-Seite wird im Stammordner):

window.location = '<%= ResolveUrl("~/logout.aspx?timeout=true")%>';

Wenn Sie Ihre Logout-Seite nicht im Stammordner ist, gehen Sie wie folgt:

window.location = '<%= ResolveUrl("~/Pathtoyourpage/logout.aspx?timeout=true")%>';

Auf diese Weise die Umleitung funktioniert auch, wenn Sie Ihre Entwicklungs- und Produktionswege sind unterschiedlich.

Hope, das hilft.

Andere Tipps

Ändern Sie den Code der folgenden:

window.location = "/logout.aspx?timeout=true";

Durch das Entfernen '' von der URL werden Sie immer für die Wurzel der Website.

EDIT:
Wie in den Kommentaren angegeben Erikric an der Wurzel des virtuellen Ordner ‚NIR310‘ gehen will.

window.location = "/NIR310/logout.aspx?timeout=true";
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top