自己署名SSL証明書で保護したい自己ホスト型WCFサービスを実行しています。これを機能させるには、この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をインストールする必要はありませんか?