title: Add Binding To IIS Without Recycling Application
body: <p>We have an application that allows us to associate multiple URLs and we want to allow our customers to add new URLs themselves, we have the following code which successfully adds the bindings:</p>
  
  <pre><code>  using (ServerManager serverManager = new ServerManager())
    {
      var site = serverManager.Sites["SITENAME"];
      var binding = site.Bindings.SingleOrDefault(x =&gt; x.Host == hostName);
      if (binding == null)
      {
        binding = site.Bindings.CreateElement("binding");
        binding["protocol"] = "http";
        string ip = "*";
        string port = "80";
        binding["bindingInformation"] = string.Format(@"{0}:{1}:{2}", ip, port, hostName);
  
        site.Bindings.Add(binding);
        serverManager.CommitChanges();
      }
    }
  </code></pre>
  
  <p>The issue we have is that this causes the application to recycle, I have tested this on our solution using local IIS and the Appliation_Start does get hit again.  I have also manually added a binding from IIS which also causes an recycle.  While I suspect the answer is no is their a solution to adding a binding programatically without causing the application to recycle?</p>