我运行一个自托管的 WCF 服务,我想用自签名 SSL 证书保护它。为此,我需要将此 SSL 证书与某个端口绑定。有几种方法可以做到:
根据这个http://msdn.microsoft.com/en-us/library/ms733791.aspx,我可以使用
netsh
它并且它可以工作,但我不想依赖netsh并从.NET代码中做所有事情。所以我找到了以下片段:
using (ServerManager manager = new ServerManager()) { Site site = manager.Sites.FirstOrDefault(i => i.Applications.Cast<Application>().Any()); Application app = site.Applications.Cast<Application>().First(); site.Bindings.Add(":*:PORTN", cert.GetCertHash(), store.Name); manager.CommitChanges(); }
它可以工作,但是这需要安装 IIS。否则我会收到以下异常:
由于以下错误,检索具有 CLSID {2B72133B-3F5B-4602-8952-803546CE3344} 的组件的 COM 类工厂失败:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。
所以,问题是 - 有没有办法在托管代码中完成这个,但不必安装 IIS?