相关疑难解决方法(0)

SignedXml.CheckSignature在.NET 4中失败,但它适用于.NET 3.5,3或2

我收到了第三方网络服务的回复.我加载了一个带有该响应的XmlDocument.

  string txt = readStream.ReadToEnd();
  response = new XmlDocument();
  response.PreserveWhitespace = true;
  response.LoadXml(txt);   
  return response;
Run Code Online (Sandbox Code Playgroud)

现在我想验证响应是否使用证书签名.我有一个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;

    }
Run Code Online (Sandbox Code Playgroud)

如果我将我的项目的目标框架设置为.NET 3.5或.NET 3,或.NET 2,它的工作原理很棒.结果是真的.但是如果我将目标框架更改为.NET 4,则结果为false.(我必须使用.NET 4)

关于如何解决这个问题的任何想法?

c# security certificate signature signedxml

34
推荐指数
2
解决办法
8005
查看次数

支持DPI和默认字体更改

所以我试图弄清楚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开发机器上设计了一个样本表单.然后我试了一下

  • 14 pt Segoe UI 96 DPI机器
  • 14 pt Segoe UI 150 DPI机器

结果并不令人鼓舞,您可以在此屏幕截图中看到:

AutoScaleMode属性未设计为启用.NET窗体以支持不同的字体或DPI设置.那么支持不同字体和DPI设置的正确方法什么?

.net dpi highdpi winforms

27
推荐指数
1
解决办法
6584
查看次数

无法进入.NET框架源代码

我正在使用Visual Studio 2013并拥有一个.NET 4.5.2项目.我根据以下页面设置了我的设置:

http://referencesource.microsoft.com/setup.html

通过此设置,我可以看到所有必需的符号都已下载并加载,但我无法进入如下代码:

var cookieContainer = new System.Net.CookieContainer();
Run Code Online (Sandbox Code Playgroud)

我收到源不可用消息.

我可以很好地进入下面的代码:

Console.WriteLine("test");
Run Code Online (Sandbox Code Playgroud)

您是否知道为什么我可以从mscorlib.dll进入代码但无法从System.dll进入代码?

.net c# debugging reference-source

26
推荐指数
2
解决办法
1万
查看次数

如何在Visual Studio 2017中调试.NET 4.6框架源代码?

这是我尝试过的:

在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)
}
Run Code Online (Sandbox Code Playgroud)

配置此处列出的设置: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

19
推荐指数
2
解决办法
8275
查看次数

Visual Studio 2010 Professional:如何访问模块窗口?

如何在Visual Studio 2010中访问" 模块"窗口?


无关的信息

根据MSDN,只有某些版本的Visual Studio允许您访问模块窗口(即Pro,Premium,Ultimate).我有专业:

在此输入图像描述

注意:严格来说我没有Pro,但我认为ProProfessional的简写

MSDN继续说:

以中断模式或运行模式显示模块窗口

  • 在"调试"菜单上,选择"Windows",然后单击"模块".

除了我没有模块菜单选项:

在此输入图像描述

(编辑:更新截图以显示调试,坐在断点处)

如何在Visual Studio 2010中访问" 模块"窗口?


无关的信息

我想自定义调试 - > 视窗项:

在此输入图像描述

除了没有Debug - > Modules项目:

在此输入图像描述

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

在此输入图像描述

如何在Visual Studio 2010中访问" 模块"窗口?

也可以看看

visual-studio-2010

16
推荐指数
1
解决办法
1万
查看次数

尽管设置了选项,.NET框架源步进仍然无法工作

我启用了这些选项,如此屏幕截图所示:

截图

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

截图

然而它跨过了代码.具体来说,我将此代码放在以下子类中ListBox:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    return base.ProcessCmdKey(ref msg, keyData);
}
Run Code Online (Sandbox Code Playgroud)

我尝试在那里设置一个断点然后用F11进入这个断点,但它只是跳了过去.

让这个工作失踪的是什么?

.net visual-studio-2010

13
推荐指数
1
解决办法
2510
查看次数

Visual Studio 2012忽略符号位置

我已禁用"Microsoft Symbol Servers"并添加了W:\Debug\RefSrc\Symbolshttp://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
Run Code Online (Sandbox Code Playgroud)

我不得不禁用".NET框架源步进"因为这个.

debugging visual-studio-2012

11
推荐指数
1
解决办法
6794
查看次数

Vs2017来源不可用

我正在尝试通过单击堆栈跟踪来调试System.Net.Http.Formating.dll:

System.Net.Http.Formatting.dll!System.Net.Http.Formatting.JsonMediaTypeFormatter.WriteToStreamAsync.AnonymousMethod__c()
Run Code Online (Sandbox Code Playgroud)

我的"只是我的代码已禁用",我有以下符号服务器:

https://nuget.smbsrc.net
http://localhost:33417/ (dot peek)
Microsoft Symbol Server
Run Code Online (Sandbox Code Playgroud)

我确实有pdb可用,但是我得到以下错误/图像.

如何正确克服它?

为什么在Visual Studio中调试第三方源代码会如此麻烦?

在此输入图像描述

debugging symbols visual-studio-2017

10
推荐指数
1
解决办法
7549
查看次数

无法在VS2010中调试.NET框架代码

我正在尝试使用公共可用符号调试.NET代码.我按照说明设置:

在工具 - >选项 - >调试中,我选中了"启用.NET框架源步进",禁用"仅启用我的代码".

在工具 - >选项 - >调试 - >符号加载所有符号.我检查了很多*.pdb出现在这个文件夹中.

在ASP.NET MVC应用程序中,我将断点放入Application_Start()方法.

在调试器运行后,我看到调用堆栈,查看调用堆栈中的所有方法(System.Web.dll).但是,如果我尝试双击它,只有我看到的是反汇编代码(或消息 - 没有源代码可用).

可能是什么原因 ?

.net debugging visual-studio-2010

7
推荐指数
1
解决办法
3549
查看次数

我在哪里可以找到System.Numerics.BigInteger的源代码?

我需要获得ORIGINAL源代码,System.Numerics.BigInteger以获得开发人员评论和合理的变量名称.我知道如何反编译程序集,这不是我正在寻找的答案.

我尝试过的:

  • 下载.NET 4和4.5的源代码但由于某种原因不包括BigInteger.
  • 源代码通过遵循MS指令步进但由于SP1的这个问题而无法工作,我没有选择在我的开发机器上回滚.我也无法访问另一台具有开发功能的机器.

我相信很多人都使用源步进来调试和/或查看BCL源代码.如果有,请发布BigInteger和相关代码作为答案.如果这样做跨越任何法律界限,请让我知道相同,以便我可以跳过替代方案.如果您确实建议了替代方案,请说明具体原因.

.net c# debugging visual-studio-2010

5
推荐指数
1
解决办法
4384
查看次数