C# 动态更改WCF服务的证书,无停机
我一直在研究一种方法,在WCF服务开始监听其连接后,更改WCF中已颁发的Tokenauthentication证书。我知道我只需进入web.config,然后重置服务,使其加载新设置,就可以更改证书,但我需要在不停机的情况下动态执行 我知道我可以通过以下操作获得当前ServiceHost实例:C# 动态更改WCF服务的证书,无停机,c#,.net,wcf,web-services,wif,C#,.net,Wcf,Web Services,Wif,我一直在研究一种方法,在WCF服务开始监听其连接后,更改WCF中已颁发的Tokenauthentication证书。我知道我只需进入web.config,然后重置服务,使其加载新设置,就可以更改证书,但我需要在不停机的情况下动态执行 我知道我可以通过以下操作获得当前ServiceHost实例: ServiceHost host = (ServiceHost)OperationContext.Current.Host; 然后我可以通过以下方式访问其服务证书: host.Credentials.I
ServiceHost host = (ServiceHost)OperationContext.Current.Host;
然后我可以通过以下方式访问其服务证书:
host.Credentials.IssuedTokenAuthentication.KnownCertificates
但一旦服务运行,这就不起作用了,因为返回的证书列表将变为只读
我看到的另一种方式是采用描述路线,但这似乎也是只读的:
host.Description.Behaviors.Find<ServiceCredentials>().IssuedTokenAuthentication.KnownCertificates;
host.Description.Behaviors.Find();
在web.config的以下位置可以找到相同的证书列表:
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceCredentials>
<serviceCertificate/>
我被困在这一点上,我认为实际上没有办法访问这些证书的可写列表。有人能证实这是真的吗?还是有办法
谢谢