asp.net - Response.Redirect 偶尔会导致错误,但我无法重现它

标签 asp.net javascript httpexception

我有一个网站,用户在一段时间不活动后会注销。这是通过以下代码完成的:

 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”文件夹注销时不会发生这种情况?我一遍又一遍地执行相同的例程,但错误几乎从未发生。

有什么想法吗?

最佳答案

将代码更改为以下内容:

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

通过删除“.”从 URL 中您始终会找到网站的根目录。

编辑:
正如评论中所述,Erikric 想要转到虚拟文件夹“NIR310”的根目录。

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

关于asp.net - Response.Redirect 偶尔会导致错误,但我无法重现它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1326741/

相关文章:

c# - 如何在 IEnumerable<xxx.Models.xxx> 函数中返回自定义 HTTP 状态代码 + 消息

javascript - Firefox 可以检测 MetaKey 吗?

javascript - Angular .js :13294 Error: [$injector:unpr] Unknown provider: cityResourceProvider <- cityResource <- cityListCtrl

android - Flutter 在 iOS 设备上出现 'Error connecting to the service protocol: HttpException...' 错误

c# - ASP.NET Core 相当于 ASP.NET MVC 5 的 HttpException

asp.net - 如何从 ASP.NET 为 Sharepoint 2010 创建身份验证票证?

asp.net - SharePoint Web 部件与 ASP.NET Web 部件

c# - .Net 4.5.2 升级后尝试解密数据时出现 HttpException

c# - 如何将 url 处的 xml 文件的内容加载到字符串中?

javascript - V8 分析 : linux-tick-processor not working with d8