2011-05-19 21 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的调试版本。