Skip to content

Instantly share code, notes, and snippets.

@DominicFinn
Created August 5, 2015 16:18
Show Gist options
  • Save DominicFinn/cbdd09df9c890c074314 to your computer and use it in GitHub Desktop.
Save DominicFinn/cbdd09df9c890c074314 to your computer and use it in GitHub Desktop.
Example of using Microsoft.Web.Administration with F#
namespace SiteScripter
open System
open Microsoft.Web.Administration
module siteGenerator =
let createSite(siteName: string) =
let name(siteName: string, site: string) =
String.Format("{0}_{1}", siteName, site)
let serverManager = new ServerManager()
let liveSite:Site = serverManager.Sites.Add(name(siteName, "live"), directoryHelpers.siteDirectory(siteName, "live"), 80)
liveSite.ServerAutoStart <- true
let livePool:ApplicationPool = serverManager.ApplicationPools.Add(name(siteName, "live"))
livePool.Enable32BitAppOnWin64 <- true;
livePool.ManagedRuntimeVersion <- "v4.0";
liveSite.ApplicationDefaults.ApplicationPoolName <- livePool.Name
liveSite.TraceFailedRequestsLogging.Enabled <- true;
liveSite.TraceFailedRequestsLogging.Directory <- String.Format(@"C:\IISLogs\{0}", siteName)
let accSite:Site = serverManager.Sites.Add(name(siteName, "acc"), directoryHelpers.siteDirectory(siteName, "acc"), 80)
let accPool:ApplicationPool = serverManager.ApplicationPools.Add(name(siteName, "acc"))
accPool.Enable32BitAppOnWin64 <- true;
accPool.ManagedRuntimeVersion <- "v4.0";
accSite.ApplicationDefaults.ApplicationPoolName <- accPool.Name
accSite.ServerAutoStart <- true
serverManager.CommitChanges()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment