Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在运行时生成web.config中的程序集时,如何引用该程序集?_C#_Asp.net_Iis_Iis 7_.net 3.5 - Fatal编程技术网

C# 在运行时生成web.config中的程序集时,如何引用该程序集?

C# 在运行时生成web.config中的程序集时,如何引用该程序集?,c#,asp.net,iis,iis-7,.net-3.5,C#,Asp.net,Iis,Iis 7,.net 3.5,我有一个WCF服务,我需要一个用于客户端证书的自定义SSL验证器。然而,当我试图告诉我的服务使用什么类时,我得到一个TypeLoadException说: 无法从程序集“ConnectorExtras”加载类型“ConnectorExtras.Validator” 下面是Web.Config中引用该类的部分 <serviceCredentials> <clientCertificate> <authentication certificateV

我有一个WCF服务,我需要一个用于客户端证书的自定义SSL验证器。然而,当我试图告诉我的服务使用什么类时,我得到一个
TypeLoadException
说:

无法从程序集“ConnectorExtras”加载类型“ConnectorExtras.Validator”

下面是Web.Config中引用该类的部分

 <serviceCredentials>
    <clientCertificate>
      <authentication certificateValidationMode="Custom" 
                      customCertificateValidatorType="ConnectorExtras.Validator, ConnectorExtras" />
    </clientCertificate>
  </serviceCredentials>
但是,如果我在构造函数中设置一个断点,它将永远不会被命中


使用验证器进行自定义证书验证需要做什么?

我试图重现您的问题。我收到了相同的错误消息,在我的情况下,我不得不在VisualStudio中重建网站。(构建=>重建网站)。我最好的猜测是,该类尚未编译,这导致IIS认为不存在这样的类。
using System.IdentityModel.Selectors;
using System.IdentityModel.Tokens;
using System.Security.Cryptography.X509Certificates;
using ConnectorExtras.App_GlobalResources;

namespace ConnectorExtras
{
    public class Validator : X509CertificateValidator
    {
        public Validator()
        {
            _certToCompare = new X509Certificate(ValidatorResources.TestCert, "a");
        }

        private readonly X509Certificate _certToCompare;

        public override void Validate(X509Certificate2 certificate)
        {
            if(certificate.Equals(_certToCompare) == false)
                throw new SecurityTokenValidationException();
        }
    }
}