C# 在运行时生成web.config中的程序集时,如何引用该程序集?
我有一个WCF服务,我需要一个用于客户端证书的自定义SSL验证器。然而,当我试图告诉我的服务使用什么类时,我得到一个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
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();
}
}
}