我有一個網站會在用戶閒置一段時間後將其登出。Respone.Redirect偶爾會導致錯誤,但我無法重現它
window.location = "./logout.aspx?timeout=true";
但在過去幾天的三次我收到以下異常:這是由下面的代碼完成
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)
起初的錯誤似乎是顯而易見的,因爲logout.aspx不包含在「Person」文件夾中,但是在根級別,但爲什麼每次從「Person」文件夾註銷時都不會發生這種情況?我一遍又一遍地做了同樣的例程,但是這個錯誤幾乎從未發生過。
任何想法?
是的,這個方法肯定比使用靜態URL更可靠。 – Kezzer 2009-08-25 08:30:25