调试Microsoft SharePoint代码 - 禁用优化

时间:2013-02-10 07:18:08

标签: .net debugging sharepoint iis sharepoint-2010

我想在SharePoint网站上调试Microsoft代码。

我下载.NET Reflector Visual Studio Extension所以我可以进入Microsoft代码,但是当我尝试获取某些变量的值时 - 我收到错误:"Cannot obtain value of local or argument <this> as it is not available at this instruction pointer, possibly because it has been optimized away."

我尝试取消优化,我看到了Cameron MacFarland写的here,所以我创建了一个文件,其中包含打开VS而没有JIT优化的命令。至于第二个动作 - 我不知道如何在IIS运行它的SharePoint应用程序时这样做。

如何实现这一目标?

编辑:我的问题基本上是:如何在IIS运行代码时禁用代码优化?

2 个答案:

答案 0 :(得分:1)

我发布了答案here,然后看到它也适用于您的具体问题。

长话短说,有一个注册表设置,您可以更改以使其工作。 在“HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment”中向注册表添加一个名为“COMPLUS_ZAPDISABLE”的字符串键。将键值设置为“1”

原来Red Gate article让我找到了这个技巧。

答案 1 :(得分:1)

我最终做的解决方案, 或多或少是JaredPar写的here

我创建了一个如下所示的文件:

[.NET Framework Debugging Control] 
GenerateTrackingInfo=1 
AllowOptimize=0

我把它放在GAC中,在dll的每个文件夹中,我想禁用它的优化,并用dll的名称命名,扩展名为“ini”。

现在,我可以使用绝大多数变量。