小编Eon*_*Eon的帖子

System.Security.Cryptography.CryptographicException:Visual Studio中不存在键集

美好的一天

由于此错误,我在尝试分配私钥时遇到严重问题.

System.Security.Cryptography.CryptographicException: Keyset does not exist

var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);

var col = store.Certificates.Find(X509FindType.FindBySerialNumber, "00873476DC47C5BB614EA96F2A9CE744A6", false);
var cert = col[0];
var xmlUnSignedSaml = new XmlDocument();
xmlUnSignedSaml.LoadXml(assertion);
xmlUnSignedSaml.PreserveWhitespace = true;
SignedXml signedXml = new SignedXml(xmlUnSignedSaml);

signedXml.SigningKey = cert.PrivateKey; //<<<--- Exception thrown.
Run Code Online (Sandbox Code Playgroud)

我已经验证了以下内容:

  1. 证书具有私钥.
  2. 读取证书的权限授予IUSR,NETWORK SERVICE,LOCAL SERVICE和MMC控制台上的本地用户上下文.证书位于localMachine - Personal文件夹中
  3. 对"C:\ Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys"中的machinekeys文件夹赋予相同的读取权限.

我已经在以下几页检查了答案,但绝对没有一个对我有效:

我从Visual Studio中运行应用程序,并在上面的代码段,它会抛出异常尝试设置 SignedXml's SigningKey

我还能做些什么才能让它运行起来?(事后补充,我也尝试过对cert和文件夹的"Everyone"权限 - 即使抛出相同的异常)

c# cryptography certificate private-key

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

自定义代码的第58行出现错误:[BC30201]预期表达式

部署报告时,SSRS会生成以下错误:

自定义代码的第58行出现错误:[BC30201]预期表达式

但是,该报告在预览模式下正常工作并正确显示该字段.

这里的自定义代码段也在visual studio中编写和测试.

这是自定义代码:

If (evaluationDate.Day = 31) Then '* affected line 
    returnValue.Append(String.Format("{0}{1:dd.MM}{2}", _
        If(index = 2, " und ", String.Empty), _
        New DateTime(evaluationDate.Year, evaluationDate.Month, lastDayOfMonthDictionary(evaluationDate.Month)), _
        If(index = 2, ".", String.Empty)))

End If
Run Code Online (Sandbox Code Playgroud)

如您所见,问题出在IF..THEN块上.evaluationDate的类型为DateTime,该值等于DateTime参数startdate或提前六个月startDate- 这是函数签名中的datetime参数.

我不明白这有什么问题,我需要知道我能做些什么来解决这个问题.有任何想法吗?

vb.net custom-code reporting-services

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

使用 Jaxb 和绑定更改 XSD 中引用元素的生成变量的名称

今天我遇到了一个令人难以置信的问题,我无法解决。我将从解释和示例开始。

我有 2 个 XSD 文件。一个 XSD 文件引用另一个 XSD 文件的元素之一。

第一个 XSD-ReportInfo.xsd

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<xs:schema id="ReportInfoWrapper" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="ReportInfoWrapper" >
    <xs:complexType>
      <xs:sequence>
          ...
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

第二个 XSD-ReportInfoRecordSet.xsd

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<xs:schema id="ReportInfoRecordSetWrapper" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:include schemaLocation="./ReportInfo.xsd" />
  <xs:element name="ReportInfoRecordSetWrapper">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="ReportInfoWrapper" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

ReportInfoRecordSet 引用 ReportInfoWrapper(ReportInfo 的根元素)。我需要知道在 JAXB 绑定文件中定义什么来更改 ReportInfoRecordSet 中此引用元素的生成名称。这是它当前生成的:

public class ReportInfoRecordSetWrapper {

@XmlElement(name = "ReportInfoWrapper", required = true)
protected List<ReportInfoWrapper> reportInfoWrappers; //I …
Run Code Online (Sandbox Code Playgroud)

java xsd reference jaxb xjb

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

为什么'as'运算符不能用于解析不可为空的值类型?

每个开发人员都有自己的标准.一些开发人员喜欢<type>.TryParse(),一些开发人员喜欢使用(type)object;,而一些开发人员喜欢使用关键字.

我注意到'as'操作符出现打嗝- 您无法使用它来执行非可空值类型之间的转换.我在关键字上阅读MSDN上的文档,他们还将其解释为"您可以使用as运算符在兼容的引用类型或可空类型之间执行某些类型的转换."

我测试了以下内容:

                    int i = 0;
                    var k = i as int; //Breaks

                    int i = 0;
                    var k = i as int?; //Works
Run Code Online (Sandbox Code Playgroud)

as关键字以这种方式执行的原因是什么?

c# theory

4
推荐指数
1
解决办法
763
查看次数

使用BeginInvoke运行委托方法

在我的课上,我有一个静态方法

public static void DoWork(int param) ...
Run Code Online (Sandbox Code Playgroud)

我想运行该方法,如:

Form.BeginInvoke(DoWork, param);
Run Code Online (Sandbox Code Playgroud)

这个操作可以吗?

我尝试使用MethodInvoker类...但我不想将方法体内联定义.有没有通用代表?或者您是否知道在没有定义委托对象(private delegate void DoWorkDelegate(int param))的情况下调用此方法的任何其他方法?

.net c# delegates winforms

3
推荐指数
1
解决办法
6217
查看次数

动态替换XML DML中节点的值

我现在正在努力解决这个问题:如何替换文本等于某个变量值的无类型XML列中的节点值?可能吗?

我的XML:

<attrs>
  <attr>ManualInsert</attr>
  <attr>ManualInsert2</attr>
  <attr>ManualInsert4</attr>
  <attr>ManualInsert8</attr>
</attrs>
Run Code Online (Sandbox Code Playgroud)

我的尝试:

DECLARE @OldValue Varchar(255) =  'ManualInsert'
DECLARE @NewValue Varchar(255) =  'ReplacedValue'

UPDATE
    Labels
SET
    Attributes.modify('replace value of (/attrs/attr/text())[1]
                       with
                       if ((/attrs/attr/text() = sql:variable("@OldValue")))
                       then sql:variable("@NewValue")
                       else () ')
WHERE
    Id = 2000046
Run Code Online (Sandbox Code Playgroud)

信息: (0 row(s) affected)

DECLARE @OldValue Varchar(255) =  'ManualInsert'
DECLARE @NewValue Varchar(255) =  'ReplacedValue'

UPDATE
    Labels
SET
    Attributes.modify('replace value of (/attrs/attr[text() = sql:variable("@OldValue")])[1]
                       with sql:variable("@NewValue")')
WHERE
    Id = 2000046
Run Code Online (Sandbox Code Playgroud)

信息:

Msg 2356, Level 16, State 1, Line 7
XQuery [Labels.Attributes.modify()]: …
Run Code Online (Sandbox Code Playgroud)

xml t-sql sql-server xquery dml

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

显示后,Visual F#Windows窗体关闭

美好的一天,

我刚刚开始学习视觉F#,它看起来非常有趣.对于我的第一个项目,我立即制作了一个窗体,从页面下载信息并将其显示在表单上的RichTextBox中.问题是,一旦表单显示并下载信息,它立即关闭.如何让我的杰作保持开放以供观看?有什么建议?

我目前有2个文件:

  • Program.fs
  • Script1.fs

Program.fs应该"创建"表单,其中Script1.fs只是应用程序的入口点.

Program.fs

namespace Program1
    open System.Windows.Forms

    module public HelloWorld =
        let form = new Form(Visible = true, TopMost = true, Text = "Welcome to F#")

        let textB = new RichTextBox(Dock = DockStyle.Fill, Text = "Initial Text")
        form.Controls.Add textB

        open System.IO
        open System.Net

        /// Get the contents of the URL via a web request
        let http (url: string) =
         let req = System.Net.WebRequest.Create(url)
         let resp = req.GetResponse()
         let stream = resp.GetResponseStream()
         let reader = new StreamReader(stream) …
Run Code Online (Sandbox Code Playgroud)

f# winforms

3
推荐指数
1
解决办法
762
查看次数

将数据从数据集绑定到<asp:Table>

在这里,我被一个不错的惊喜打了一巴掌!<asp:Table>没有DataSource属性.到目前为止,我有这个代码.

System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Careers"].ConnectionString);
conn.Open();
System.Data.SqlClient.SqlCommand comm = new System.Data.SqlClient.SqlCommand("SELECT * FROM Careers", conn);
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(comm);
System.Data.DataSet ds = new System.Data.DataSet();
da.Fill(ds);
System.Data.DataTable dt = ds.Tables[0];
//tbVCareers.IMAGINARYDATASOURCE = dt;
tbVCareers.DataBind();
Run Code Online (Sandbox Code Playgroud)

这只是我正在编写的测试页面,因此Table不应该看起来漂亮.我如何将数据绑定到此表?请注意,这与我在之前的问题中发布的数据库连接不同.有人可以借给我任何见解吗?

t-sql asp.net

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

为什么我的div框忽略了我的css代码?

首先,我想说我已经测试了我的.css链接是否有效,背景是黑色.

这是我正在制作的ASP.NET Mvc测试应用程序,我很难定位嵌套在div框中的一些元素.我得出的结论是,嵌入在topmostheader框中的div框忽略了我的.css代码.

这是我的整个css文件,名为custom1.css

#topmostheader
{               
    background: none repeat scroll 0% 0% rgb(0, 0, 0);
    height: 90px;
    text-align: center;
}

#topmostheader.inner
{
    width: 1280px;
    margin: 0 auto;
    text-align: left;
    background-color: Red;
}

#topmostheader.app-name
{
    font-size: 14px;
    float: left;
    line-height: 90px;
    color: rgb(119,119,119);
    margin: 0px 20px 0px 0px;
}
#topmostheader.xxx-logo
{
    margin: 0px;
    height: 90px;
    float: right;
}
Run Code Online (Sandbox Code Playgroud)

这是我的div框布局.

<div id="topmostheader">
    <div class="inner" >
        <div class="app-name">
            Lunch Application
        </div>
        <div class="xxx-logo">
            <img src="/content/xxx/logo.png" alt="xxx logo"/>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

不会产生所需的结果:应用程序名称,内部和加速徽标分隔符都在屏幕中死点,其中应用程序名称必须位于左侧,徽标位于右侧.

我已经测试了下面的代码(以不希望的方式产生了所需的结果 - …

html css asp.net-mvc

2
推荐指数
3
解决办法
864
查看次数

类型未定义 - VB.NET的C#类

我坐在一个相当奇怪的错误 - 我相信我按照正确的步骤来解决.

基本上,我的编译器抱怨以下内容:

Type 'InteractionsEntities' is not defined

这是对我所做的一切的解释.我的目标是在我的vb.net项目中使用C#编译的类.

第1步:右键单击我的VB.NET项目 - 添加>参考

第2步:在项目列表之外,我选择了包含InteractionsEntities该类的C#项目并按下确定.

第3步:我在我的vb.net模块中添加了代码行:Imports CsharpProject.CsharpNamespace

第4步:在我的模块中,我添加了一个变量:Private context = new InteractionsEntities- 注意到这一点,Intellisense能够找到我需要的类.

第5步:为了确保我的Project可以使用实体框架,我使用nuget包管理器来安装实体框架.

所以按照上面列出的步骤,我有以下代码:

Imports CsharpProject.CsharpNamespace

Module Module1
    Dim context = New InteractionsEntities()
    Sub Main(properties As String())
            Dim documents = context.Documents.Select(Function(x) x)
            For Each document In documents
                Console.WriteLine(document.Name)
            Next
    End Sub
Run Code Online (Sandbox Code Playgroud)

奇怪的是,Intellisense能够检测到我的C#名称空间中存在InteractionsEntities.在安装entityframework nuget包时,错误将消失 - 我能够访问上下文变量中的属性.我点击"重建所有"的那一刻 - 错误Type 'InteractionsEntities' is not defined返回.将鼠标悬停在命名空间(现在也标记为错误)并单击Error Corrections Options产生没有更正建议.

我错过了中间的一步吗?为什么我的VB.NET项目抱怨该类不存在呢?我也在c#名称空间下测试了其他类(与实体框架无关),并且会产生相同的效果.

.net c# vb.net entity-framework

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

有没有办法在C#中重载+ =运算符

我试图+=在我的c#代码中重载一个运算符,基本上只是为了keyValuePair给a 添加一个结构Hashtable(在这种情况下,它是一个继承自HashtableClass的类)

using System;
using System.Collections.Generic;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

public class Program
{
    private static void Main()
    {
        var x = new HashClass();
        x.Add("one", "one");
        x.Add("two", "two");

        var y = x + new KeyValuePair<string, string>("three", "three");
        y += new KeyValuePair<string, string>("four", "four");

        foreach (System.Collections.DictionaryEntry z in y)
        {
            Console.WriteLine(z.Key + " " + z.Value);
        }
    }
}

public class HashClass : System.Collections.Hashtable
{
    public static …
Run Code Online (Sandbox Code Playgroud)

c# operator-overloading

0
推荐指数
1
解决办法
314
查看次数

迭代N个数字并使用LINQ对它进行求和

有没有办法在LINQ中迭代N个数字来得到它的总和?

例如:

var n = 3;

//The part I wonder about if you can do this entirely with LINQ
var t = 0;
for (var i = 0; i < n; i++){ 
    t += i;
}
Run Code Online (Sandbox Code Playgroud)

c# linq

-1
推荐指数
2
解决办法
494
查看次数

当等待值低得多时,为什么Javascript在setTimeout中说"回调不是函数"?

我在javascript中编写了一个基本的作业运行器(也使用了一些JQuery,但那是另一天的另一个故事)我遇到了这个奇怪的问题:

我运行的方法等待所有作业完成:

$.getAllProducts = function(callback){
      $.getProductDetails('|ALL|', function(allProductsResult){ //intentionally
          var objAllProducts = JSON.parse(JSON.parse(allProductsResult));
          var objProductsBuiltUp = {};

          var productLength = objAllProducts.length;
          $.totalJobs(productLength);

          var processed = 0;
          $.completedJobs(processed);

          $.each(objAllProducts, function(i,v){
              $.getProductDetails(objAllProducts[i].ProductCode, function(result){
                $.mergeShallow(objProductsBuiltUp, JSON.parse(JSON.parse(result)));
                processed++;
                $.completedJobs(processed);
              });
          });

          $.wait(0, false, function(isDone){ //allow at least 50ms wait time, otherwise this confuses javascript into thinking there are no callbacks
            if (isDone){
              callback(objProductsBuiltUp.ProductComponents);
            }
          });
      });
    }
Run Code Online (Sandbox Code Playgroud)

工作的处理程序

    $.checkProgress = function() {
        return $.jobs === $.completed;
    }

    $.totalJobs = function(total) {
        $.jobs = total;
    } …
Run Code Online (Sandbox Code Playgroud)

javascript jquery settimeout

-2
推荐指数
1
解决办法
582
查看次数