public static ActionResult BindCertificate(Session session) { ActionResult result; var methodName = MethodBase.GetCurrentMethod().Name; session.Log("{0}: BEGIN", methodName); try { var filePath = session.CustomActionData["SessionData"]; var sessionData = SessionManager.Load(filePath); session.Log("{0}: Product Version = {1}", methodName, sessionData.InstallerVersion); session.Log("{0}: THUMBPRINT = {1}", methodName, sessionData.Certificate); session.Log("{0}: PORT = {1}", methodName, sessionData.Port); var port = (ushort)sessionData.Port; CertificateManager.BindSelfSignedCertificate(sessionData.Certificate, port); var providerConfig = ConfigManager.GetConfiguration(sessionData.Application); providerConfig.ListenPort = port; providerConfig.Version = sessionData.InstallerVersion; ConfigManager.SaveConfiguration(providerConfig, sessionData.Application); result = ActionResult.Success; } catch (Exception e) { session.Log("{0}", e); result = ActionResult.Failure; } session.Log("{0}: RESULT = {1}", methodName, result); session.Log("{0}: END", methodName); return(result); }