2011-05-19 43 views
1

我碰到System.IO.Path.CheckInvalidPathChars()mscorlib程序中以下情況除外:調試的mscorlib在.NET 4.0中

[ArgumentException的:非法字符 路徑]
System.IO .Path.CheckInvalidPathChars(字符串 路徑)142
System.IO.Path.NormalizePath(字符串 路徑,布爾fullCheck,的Int32 maxPathLength)100
System.IO.Path.GetFullPath(字符串 路徑)187
System.Xml.XmlResolver.ResolveUri(URI 基本URI,字符串relativeUri)114
System.Xml.XmlTextReaderImpl..ctor(字符串 URL,XmlNameTable nt)的135
System.Xml.XmlDocument.Load(字符串 文件名)85
Sitecore.Web.UI.WebControls.WebEditRibbon.ConvertToJson(字符串 佈局)210
Sitecore.Web.UI.WebControls.WebEditRibbon.Render(HtmlTextWriter的 輸出,項項)1268
Sitecore的.Web.UI.WebControl.Render(HtmlTextWriter 輸出)+387
系統.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter的作家 ,ICollection的兒童)246個
System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter的 作家)+ 315
System.Web.UI.HtmlControls.HtmlContainerControl。渲染(HtmlTextWriter的 作家)+48
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter的作家 ,的ControlAdapter適配器) 11279890 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter的作家 ,ICollection的兒童)246
(作者)+40
System.Web.UI.Page.ProcessRequestMain(布爾 includeStagesBeforeAsyncPoint,布爾 includeStagesAfterAsyncPoint)5274

的事情是,我沒有什麼路徑值是造成此錯誤。如果我可以調試該方法,這將有所幫助,以便我可以看到路徑參數的值。我啓用了Visual Studio 2010中的.Net Framework代碼。我還從Microsoft Symbol Servers加載了相關的.Net Framework符號。但是,似乎這些PDB不包括來源;所以我無法步入CheckInvalidPathChars並檢索路徑值。

是否可以調試mscorlib並逐步完成其源代碼?

相關信息:

  • 框架4.0。
  • 的Visual Studio 2010

任何建設性輸入不勝感激。

感謝, 弗蘭克

回答

2

對於.NET庫,您可以獲得參考源。在您的堆棧跟蹤
http://referencesource.microsoft.com/

來看,這個問題似乎原產於Sitecore.Web.UI.WebControls.WebEditRibbon.ConvertToJson。那件事是試圖加載一個XML文件。

0

使用反射器將允許你這樣做。
您是否有可能打破所有例外?這樣做肯定會解決調試器中顯示的內部異常。如果是這種情況,您可以放心地忽略該異常。

+1

我其實試過Reflector Pro;反彙編mscorlib並使用生成的符號進行調試。但是,調試支持很差,我無法訪問該方法中的路徑參數值或任何內部變量。 – 2011-05-19 16:28:42

+0

無需拆卸。源可用。去下載它。 http://referencesource.microsoft.com/netframework.aspx – Cheeso 2011-05-19 20:44:01

0

那麼你的機器上的mscorlib.dll是發佈版本,所以即使你可以很好地調試它,你也不會看到值局部變量/對象等。這個二進制代碼是優化的。如果您需要Microsoft .NET代碼的完美調試體驗,那麼您需要在您的機器上安裝.NET的調試版本。