Respone.リダイレクトエラーの原因をよく再現で
-
19-09-2019 - |
質問
しているウェブサイトグのユーザーしながら操作しない.これは、以下のコード:
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)
最初のエラーが明らからウ.aspxに含まれていないか"人"にフォルダの根レベルのものが記載されていないのはなぜか毎回のようなログインからの"人"にフォルダ?もちろん、仕事もう一度ひっくり返してもう一つが、ほとんどないエラーが発生します。
そのアイデア?
解決
あなたは常に次のように(自分のログアウトページは、ルートフォルダにあると仮定した場合)のページへの完全な解決されたパスを記述することで、サイトのルートへの正しいパスを持っていることを確認することができます:
window.location = '<%= ResolveUrl("~/logout.aspx?timeout=true")%>';
あなたのログアウトページは、ルートフォルダにない場合は、次の手順を実行します:
window.location = '<%= ResolveUrl("~/Pathtoyourpage/logout.aspx?timeout=true")%>';
あなたの開発と生産の経路が異なっていても、この方法では、リダイレクトは動作します。
この情報がお役に立てば幸いです。
他のヒント
変更コードは、以下の
window.location = "/logout.aspx?timeout=true";
を除去し、'.'のURLから独立して生計を営むおも根のサイトです。
編集:
上記のコメントErikricたいへのルートの仮想フォルダ'NIR310'.
window.location = "/NIR310/logout.aspx?timeout=true";
所属していません StackOverflow