我从mscorlib中的System.IO.Path.CheckInvalidPathChars()获得以下异常:
[ArgumentException:非法字符 在路上。] System.IO.Path.CheckInvalidPathChars(字符串 路径)+142
System.IO.Path.NormalizePath(字符串 path,Boolean fullCheck,Int32 maxPathLength)+100
System.IO.Path.GetFullPath(字符串 路径)+187
System.Xml.XmlResolver.ResolveUri(URI baseUri,String 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
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter的 作家,ICollection孩子们)+246
System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter的 作家)+315
System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter的 作家)+48
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter的 编写者,ControlAdapter适配器) +11279890 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter 作家,ICollection孩子们)+246
System.Web.UI.Page.Render(HtmlTextWriter的 作家)+40
System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+5274
问题是,我不知道导致此错误的路径值是什么。如果我可以调试方法,这将有助于我可以看到path参数的值。我启用了步入Visual Studio 2010中的.Net Framework代码。我还从Microsoft Symbol Servers加载了相关的.Net Framework符号。但是,这些PDB似乎不包括来源;所以我无法进入CheckInvalidPathChars并检索路径值。
是否可以调试mscorlib并逐步完成其源代码?
相关信息:
非常感谢任何建设性的意见。
谢谢, 弗兰克
答案 0 :(得分:3)
您可以获取.NET库的参考源 http://referencesource.microsoft.com/
查看堆栈跟踪,问题似乎来自Sitecore.Web.UI.WebControls.WebEditRibbon.ConvertToJson
。那件事正在尝试加载XML文件。
答案 1 :(得分:0)
使用反射器可以让你这样做 是否有可能打破所有异常?这样做肯定会解释调试器中出现的内部异常。如果是这种情况,您可以放心地忽略该异常。
答案 2 :(得分:0)
你的机器上的mscorlib.dll是发布版本,所以即使你可以很好地调试它,你也无法看到值局部变量/对象等。这个二进制文件中的代码已经过优化。如果您需要Microsoft .NET代码的完美调试体验,那么您需要在您的计算机上安装.NET的调试版本。