我收到了第三方网络服务的回复.我加载了一个带有该响应的XmlDocument.
  string txt = readStream.ReadToEnd();
  response = new XmlDocument();
  response.PreserveWhitespace = true;
  response.LoadXml(txt);   
  return response;
现在我想验证响应是否使用证书签名.我有一个VerifyXmlDoc(XmlDocument xmlDoc)我在msdn上找到的方法.
我知道这条消息是正确的.
    public bool VerifyXmlDoc(XmlDocument xmlDoc)
    {
        SignedXml signed = new SignedXml(xmlDoc);
        XmlNodeList signatureNodeList = xmlDoc.GetElementsByTagName("Signature");
        signed.LoadXml((XmlElement)signatureNodeList[0]);
        X509Certificate2 serviceCertificate = null;
        foreach (KeyInfoClause clause in signed.KeyInfo)
        {
            if (clause is KeyInfoX509Data)
            {
                if (((KeyInfoX509Data)clause).Certificates.Count > 0)
                {
                    serviceCertificate = (X509Certificate2)((KeyInfoX509Data)clause).Certificates[0];
                }
            }
        }
        bool result = signed.CheckSignature(serviceCertificate, true);
        return result;
    }
如果我将我的项目的目标框架设置为.NET 3.5或.NET 3,或.NET 2,它的工作原理很棒.结果是真的.但是如果我将目标框架更改为.NET 4,则结果为false.(我必须使用.NET 4)
关于如何解决这个问题的任何想法?
所以我试图弄清楚Form的AutoScaleMode属性如何可能有助于支持具有与我的工作开发机器不同的字体或DPI的系统.
从SDK:
AutoScaleMode枚举
public enum AutoScaleMode
None Automatic scaling is disabled. Font Controls scale relative to the dimensions of the font the classes are using, which is typically the system font. Dpi Controls scale relative to the display resolution. Common resolutions are 96 and 120 DPI.
默认情况下,.NET 2.0 Forms使用AutoScaleMode.Font.
所以我在我的Windows XP,Tahoma 8 pt,96 DPI开发机器上设计了一个样本表单.然后我试了一下
结果并不令人鼓舞,您可以在此屏幕截图中看到:

AutoScaleMode属性未设计为启用.NET窗体以支持不同的字体或DPI设置.那么支持不同字体和DPI设置的正确方法是什么?
我正在使用Visual Studio 2013并拥有一个.NET 4.5.2项目.我根据以下页面设置了我的设置:
http://referencesource.microsoft.com/setup.html
通过此设置,我可以看到所有必需的符号都已下载并加载,但我无法进入如下代码:
var cookieContainer = new System.Net.CookieContainer();
我收到源不可用消息.
我可以很好地进入下面的代码:
Console.WriteLine("test");
您是否知道为什么我可以从mscorlib.dll进入代码但无法从System.dll进入代码?
这是我尝试过的:
在Visual Studio 2017中创建了一个新的控制台应用程序(.NET Framework).
添加了以下代码:
static void Main(string[] args)
{
    new Dictionary<int, int>().TryGetValue(3, out int x); //I want to step into TryGetValue() (this is just an example)
}
配置此处列出的设置:https: //blogs.msdn.microsoft.com/sburke/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code/
已确认的符号将加载到"模块"窗口中:
mscorlib.dll已加载符号.4.6.1586.0构建者:NETFXREL2
试过:"踏入(F11)"
尝试:"步入特定"| "System.Collections.Generic.Dictionary.TryGetValue"
两者都只是跨过了界限.
我尝试使用以下详细信息配置VS:http://www.symbolsource.org/Public/Home/VisualStudio
同样的结果,调试器跨越了这一行.
我在这里看了答案:https://stackoverflow.com/a/12432029/297451
但是这个版本似乎不是安全更新,搜索"site:support.microsoft.com/kb 4.6.1586.0"什么都不会产生任何结果.
我究竟做错了什么?
.net c# debug-symbols visual-studio-debugging visual-studio-2017
如何在Visual Studio 2010中访问" 模块"窗口?
无关的信息
根据MSDN,只有某些版本的Visual Studio允许您访问模块窗口(即Pro,Premium,Ultimate).我有专业:

注意:严格来说我没有Pro,但我认为Pro是Professional的简写
MSDN继续说:
以中断模式或运行模式显示模块窗口
- 在"调试"菜单上,选择"Windows",然后单击"模块".
除了我没有模块菜单选项:
(编辑:更新截图以显示调试,坐在断点处)
如何在Visual Studio 2010中访问" 模块"窗口?
我想自定义的调试 - > 视窗项:

除了没有Debug - > Modules项目:

也没有任何Windows - > 模块项:

如何在Visual Studio 2010中访问" 模块"窗口?
我启用了这些选项,如此屏幕截图所示:

我也System.Windows.Forms.dll选择了模块:

然而它跨过了代码.具体来说,我将此代码放在以下子类中ListBox:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    return base.ProcessCmdKey(ref msg, keyData);
}
我尝试在那里设置一个断点然后用F11进入这个断点,但它只是跳了过去.
让这个工作失踪的是什么?
我已禁用"Microsoft Symbol Servers"并添加了W:\Debug\RefSrc\Symbols从http://referencesource.microsoft.com/下载的.NET 4.5符号()的路径.
不幸的是,当我强制加载符号时,例如在mscorlib.dll上,Visual Studio忽略此文件夹并继续从符号服务器下载符号文件.他们最终进入W:\Debug\SymbolsCache\MicrosoftPublicSymbols并完全相同RefSrc.
是否有其他人看到这种行为?
我的调试设置:
[ ] Enable Just my code
[ ] Enable .NET framework source stepping
[ ] Enable source server support
我不得不禁用".NET框架源步进"因为这个.
我正在尝试通过单击堆栈跟踪来调试System.Net.Http.Formating.dll:
System.Net.Http.Formatting.dll!System.Net.Http.Formatting.JsonMediaTypeFormatter.WriteToStreamAsync.AnonymousMethod__c()
我的"只是我的代码已禁用",我有以下符号服务器:
https://nuget.smbsrc.net
http://localhost:33417/ (dot peek)
Microsoft Symbol Server
我确实有pdb可用,但是我得到以下错误/图像.
如何正确克服它?
为什么在Visual Studio中调试第三方源代码会如此麻烦?
我正在尝试使用公共可用符号调试.NET代码.我按照说明设置:
在工具 - >选项 - >调试中,我选中了"启用.NET框架源步进",禁用"仅启用我的代码".
在工具 - >选项 - >调试 - >符号加载所有符号.我检查了很多*.pdb出现在这个文件夹中.
在ASP.NET MVC应用程序中,我将断点放入Application_Start()方法.
在调试器运行后,我看到调用堆栈,查看调用堆栈中的所有方法(System.Web.dll).但是,如果我尝试双击它,只有我看到的是反汇编代码(或消息 - 没有源代码可用).
可能是什么原因 ?
我需要获得ORIGINAL源代码,System.Numerics.BigInteger以获得开发人员评论和合理的变量名称.我知道如何反编译程序集,这不是我正在寻找的答案.
我尝试过的:
我相信很多人都使用源步进来调试和/或查看BCL源代码.如果有,请发布BigInteger和相关代码作为答案.如果这样做跨越任何法律界限,请让我知道相同,以便我可以跳过替代方案.如果您确实建议了替代方案,请说明具体原因.