2012-06-26 21 views
2

我越來越可怕Cannot use a leading .. to exit above the top directory.調試ASP.NET無法使用的主要..退出頂級目錄

不幸的是,ME的生成上面......地方嗎?....我的控制。有沒有工具可以幫助我找出產生的地方?甚至超鏈接的實際文本?也許intellitrace不知何故?

是的,它有一百萬谷歌的結果。我知道我需要解決的問題,我不知道問題實際發生在哪裏。

我試着覆蓋渲染事件,然後在每一個HtmlLink對象上調用ResolveClientURL,我可以通過從基地走控制樹來找到它,但是永遠不會拋出異常或者做錯任何事情。難道它只會在base.render期間死亡,因爲我從/v5/plugins/dashboard中的頁面調用ResolveClientURL,並且基頁位於/v5/

這是我寫手動調試的位。我希望這段代碼拋出異常。

protected override void Render(HtmlTextWriter writer) 
    { 
    foreach (Control c in base.Controls) 
    { 
     Trace.Write("New base control"); 
     var baseParent = c;// findBaseParent(c); 
     Trace.Write(baseParent.GetType().ToString()); 
     renderChillunsRecursive(baseParent, 0); 
    } 
    base.Render(writer); 
    } 
    private int total; 
    private void renderChillunsRecursive(Control c,int depth) 
    { 
    var chilluns = c.Controls; 
    foreach (Control a in chilluns) 
    { 
     renderChillunsRecursive(a,depth +1); 
     total++; 
    } 
    string otherString = String.Empty; 
    if(c.GetType() == typeof(HtmlLink)) 
    { 
     HtmlLink theLInk = ((HtmlLink) c); 
      otherString = theLInk.Href; 
     otherString += " - " + theLInk.ResolveClientUrl(theLInk.Href); 
    } 
    Trace.Write(String.Format("{0} - {1} - {2} - {3} - {4}",depth,total,c.GetType(),c.ToString(),otherString)); 
    } 

堆棧跟蹤

[HttpException (0x80004005): Cannot use a leading .. to exit above the top directory.] 
    System.Web.Util.UrlPath.ReduceVirtualPath(String path) +8886247 
    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.HtmlControls.HtmlLink.RenderAttributes(HtmlTextWriter writer) +74 
    System.Web.UI.HtmlControls.HtmlLink.Render(HtmlTextWriter writer) +42 
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +8703574 
    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.HtmlHead.RenderChildren(HtmlTextWriter writer) +17 
    System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +32 
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +8703574 
    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.Control.Render(HtmlTextWriter writer) +10 
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +8703574 
    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 
    FileBasePage.Render(HtmlTextWriter writer) +2331 
    FileDetails.Render(HtmlTextWriter writer) in c:\inetpub\V5 - Development\Plugins\Dashboard\FileDetails.aspx.cs:690 
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +8703574 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1266 
+0

當你得到這個錯誤?我們是在談論生產場地,還是仍處於開發階段?這個錯誤何時開始顯示? – walther

+0

當你遞歸的時候,我會認爲這是「深度+1」 - 你不需要這個。 – TheGeekYouNeed

+0

Win2k8 r2/iis7.5預生產。這是全新的安裝。 – scaryman

回答

0

沒有人回答我的問題,實際 -

是否有工具,將幫助我找出它的產生? 甚至超鏈接的實際文本?也許intellitrace不知何故?

但是我們發現IIS DLL的安全性正在逐漸降低。命令c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -m -ag 1 -url "file:////C:\inetpub\V5 - Development\*" FullTrust -exclusive on解決了我們的問題 - 類似於右鍵單擊dll並選擇取消阻止。 (我們對這個測試服務器的遠程部署包括壓縮網站並將其保存到服務器,因此Windows應用了一些額外的安全性內容)。有關更多信息,請參閱http://blogs.msdn.com/b/narahari/archive/2010/06/03/system-security-securityexception-request-for-the-permission-of-type-system-web-aspnethostingpermission-system-version-2-0-0-0-culture-neutral-publickeytoken-b77a5c561934e089-failed.aspx

我們認爲,因爲IIS不喜歡它所在的站點bin文件夾中的DLL,並且從gac中找到了一個有用的DLL,此時ReduceVirtualPath失敗,因爲它實際上並不位於網站目錄附近的任何位置。

1

刪除../和地點從母版頁和錯誤頁 〜/糾正錯誤,不能使用導致..退出頂級目錄上方。

相關問題