我想在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运行代码时禁用代码优化?
答案 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”。
现在,我可以使用绝大多数变量。