1. ホーム
  2. asp.net

[解決済み] トップディレクトリより上では、先頭の ../ を使って終了できない

2022-02-09 16:35:30

質問事項

私はasp.netのウェブサイトを持っており、管理者専用のログインページがある管理エリアがあり、すべてのサイトが許可されています - 私はこのエラーが発生するので、それのための正しいセキュリティ構成を定義する方法を尋ねる必要があります

トップディレクトリより上で終了するには、先頭の ... を使用できません。
説明 現在のWebリクエストの実行中に、処理されない例外が発生しました。エラーの詳細とコードの発生場所については、スタックトレースを確認してください。

例外の詳細 System.Web.HttpException: トップディレクトリより上で終了するために、先頭の...を使用できません。

ソースエラーです。

現在の Web リクエストの実行中に、処理されない例外が発生しました。例外の発生元と発生場所に関する情報は、以下の例外スタックトレースを使用して特定できます。 

スタックトレース 


[HttpException (0x80004005): トップディレクトリより上で終了するために、先頭の ... を使用できません]。
   System.Web.Util.UrlPath.ReduceVirtualPath(String path) +8862087
   System.Web.Util.UrlPath.Reduce(String path) +52
   System.Web.Util.UrlPath.Combine(String appPath, String basepath, String relative) +214
   System.Web.UI.Control.ResolveClientUrl(String relativeUrl) +180
   System.Web.UI.WebControls.Image.AddAttributesToRender(HtmlTextWriter writer) +68
   System.Web.UI.WebControls.WebControl.RenderBeginTag(HtmlTextWriter writer) +20
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +20
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +163
   System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +32
   System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +51
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +40
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1266

私の設定ファイル :

 <authentication mode="Forms">
  <forms name=".ASPXFORMSAUTH" protection="All" loginUrl="Admin/LoginPage.aspx" path="/" enableCrossAppRedirects="true">
  </forms>
</authentication>
<authorization>
  <deny users="*" />
</authorization>

解決方法は?

これは、あなたのウェブページが、あなたのページから1つ上の階層のフォルダにあるコンテンツを参照しているにもかかわらず、あなたのページはすでにウェブサイトのルートフォルダにあるので、相対パスが無効であることを意味します。例外メッセージから判断すると、画像コントロールが問題を引き起こしているように見えます。

のようなものがあるはずです。

<asp:Image ImageUrl="..\foo.jpg" />

しかし、ページ自体はウェブサイトのルート・フォルダーにあるため、1つ上の階層のコンテンツを参照することはできず、先頭の ..\ が行っている。