web-dev-qa-db-ja.com

先頭の../を使用して、最上位ディレクトリの上で終了することはできません

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

先頭の..を使用して、最上位ディレクトリの上で終了できません。 
説明:現在の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.RenderControlIn ternal(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、ブールincludeStagesAfterAsyncPoint)+1266

私の設定ファイル:

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

つまり、Webページはページの1レベル上のフォルダーにあるコンテンツを参照していますが、ページは既にWebサイトのルートフォルダーにあるため、相対パスは無効です。例外メッセージから判断すると、イメージコントロールが問題を引き起こしているようです。

次のようなものが必要です。

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

ただし、ページ自体はWebサイトのルートフォルダにあるため、1レベル上のコンテンツを参照できません。これは、先頭の..\はやっています。

56
Adam Ralph

~/img/myImage.pngの代わりに../img/myImage.png ASP.NETページでこのエラーを回避します。

15
Majid

スタイル="../"の画像またはファビコンリンクがあり、「../」が有効な場合、次のようにサイトの最上部を超えます。

画像:

http://example.com/Images/test.jpg

ページ

http://example.com/Pages/test.aspx

そのページで有効:../Images/test.jpg
エラーをスローします:../../Images/test.jpg

9
Nick Craver

私の場合、マスターページでHTMLがコメントアウトされていることがわかりました。

このようなHTMLがコメントアウトされていることは、ASP.NETによって実際に解釈されることを誰が知っていましたか!

<!--
<link rel="icon" href="../../favicon.ico">
-->
2
Matthew Lock

これは、パスの1つに「..」が付いているため、Webサイトのルートフォルダー階層が終了することを意味します。問題を解決するには、「asp.net相対パス」またはそのようなものをグーグルで検索する必要があります。

ところで、問題がどこにあるかのヒントは、あなたが見た例外ページに含まれています。実際に問題が見つかったファイルがわかります。

この例外の今後の発生を回避するには、ソリューション全体でこの文字列「../」を検索してください。 Webサイトのルートパスにあるファイルでこれらのいずれかを見つけた場合は、それらに対処します。

2
user3409893

私は同じ問題を抱えた...そして私はそれをやった。

以前の私のコード:

<link rel="stylesheet" href="../css/style.default.css" type="text/css" />

私のコードをこれに変更した後、問題は解決しました:

<link rel="stylesheet" href="css/style.default.css" type="text/css" />

だから私は"href=../"は許可されていません。使用すると"../" in "src=../"

前もって感謝します

0
kho dir

システムで非常に奇妙な方法で問題が発生しました。私のシステムでは、顧客は製品カテゴリのディレクトリ構造内にある製品を作成します。そのため、ProductAは、CategoryOuterフォルダー内のCategoryInnerフォルダーにある可能性があります。 URLにネストされたカテゴリをこのように表示する機能を追加したところです。

http://www.somedomain.com/product/CategoryOuter/CategoryInner/ProductA.aspx

明らかに、URLのネストはSEOの目的のためだけでした(そして、製品がどのカテゴリーに属しているかをユーザーに示すためのものでした。エラーメッセージはデバッガーで問題のない行にポップアップ表示されたため、何が起こっているのかを理解するのにかなり時間がかかりました。 〜で始まり、残りのパスを絶対パスにします。

0
Brett

「標準」ホスティングからAzureにプロジェクトを移動し、url-rewriteでページを開こうとすると同じエラーが発生します。つまりルールは:

<add key="/iPod-eBook-Creator.html" value="/Product/ProductDetail?PRODUCT_UID=iPod_EBOOK_CREATOR" />

my_site/iPod-eBook-Creator.htmlを開いてこのエラーを取得してみてください(my_site/Product/ProductDetail?PRODUCT_UID = iPod_EBOOK_CREATORページは問題なく開くことができます)。

私は完全にサイトをチェックしました-「レベルアップ」に使用されたことはありません

0
Oleg Sh

私はそのような問題を抱えており、答えは、見つけるのはいらいらしますが、問題のあるページでエラーメッセージの「..」を検索することで解決しました。私はVisual Studio Expressを使用していますが、ソリューションは "../../Images/"を "〜/ Images /"に変更していました。これが誰かの助けになることを願っています。

0
user1830924