using System;using System.DirectoryServices;namespace DanchengSetup { /// <summary> /// CrevirWebSite 的摘要说明。 /// </summary> public class SetupUtility { public SetupUtility() { }
public int CreateWebSite(string webSiteName, string pathToRoot) { return CreateWebSite(webSiteName, pathToRoot, false); }
public int CreateWebSite(string webSiteName, string pathToRoot, bool createDir) { DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC");// Find unused ID value for new web siteint siteID = 1; int siteID = 1; foreach(DirectoryEntry e in root.Children) { if(e.SchemaClassName == "IIsWebServer") { int ID = Convert.ToInt32(e.Name); if(ID >= siteID) { siteID = ID+1; } } } // Create web site DirectoryEntry site = (DirectoryEntry)root.Invoke("Create", "IIsWebServer", siteID); site.Invoke("Put", "ServerComment", webSiteName); site.Invoke("Put", "KeyType", "IIsWebServer"); site.Invoke("Put", "ServerBindings", ":80:"); site.Invoke("Put", "ServerState", 2); site.Invoke("Put", "FrontPageWeb", 1); site.Invoke("Put", "DefaultDoc", "Default.aspx"); site.Invoke("Put", "SecureBindings", "");//site.Invoke("Put", "SecureBindings", ":443:"); site.Invoke("Put", "ServerAutoStart", 1); site.Invoke("Put", "ServerSize", 1); site.Invoke("SetInfo");// Create application virtual directory DirectoryEntry siteVDir = site.Children.Add("Root", "IISWebVirtualDir"); siteVDir.Properties["AppIsolated"][0] = 2; siteVDir.Properties["Path"][0] = pathToRoot; siteVDir.Properties["AccessFlags"][0] = 513; siteVDir.Properties["FrontPageWeb"][0] = 1; siteVDir.Properties["AppRoot"][0] = "LM/W3SVC/"+siteID+"/Root"; siteVDir.Properties["AppFriendlyName"][0] = "Root"; siteVDir.CommitChanges();site.CommitChanges(); return siteID; } }}
install sheil也是一种好的选择
InstallShield打包,如何创建站点呢?
{
System.EnterpriseServices.Internal.IISVirtualRoot vr = new System.EnterpriseServices.Internal.IISVirtualRoot(); string sError; vr.Create("IIS://localhost/W3SVC/1/Root",@"C:\yourpath\","yourweb",out sError);
}
catch
{
}
{
/// <summary>
/// CrevirWebSite 的摘要说明。
/// </summary>
public class SetupUtility
{
public SetupUtility()
{
}
public int CreateWebSite(string webSiteName, string pathToRoot)
{
return CreateWebSite(webSiteName, pathToRoot, false);
}
public int CreateWebSite(string webSiteName, string pathToRoot, bool createDir)
{
DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC");// Find unused ID value for new web siteint siteID = 1;
int siteID = 1;
foreach(DirectoryEntry e in root.Children)
{
if(e.SchemaClassName == "IIsWebServer")
{
int ID = Convert.ToInt32(e.Name);
if(ID >= siteID)
{
siteID = ID+1;
}
} }
// Create web site
DirectoryEntry site = (DirectoryEntry)root.Invoke("Create", "IIsWebServer", siteID);
site.Invoke("Put", "ServerComment", webSiteName);
site.Invoke("Put", "KeyType", "IIsWebServer");
site.Invoke("Put", "ServerBindings", ":80:");
site.Invoke("Put", "ServerState", 2);
site.Invoke("Put", "FrontPageWeb", 1);
site.Invoke("Put", "DefaultDoc", "Default.aspx");
site.Invoke("Put", "SecureBindings", "");//site.Invoke("Put", "SecureBindings", ":443:");
site.Invoke("Put", "ServerAutoStart", 1);
site.Invoke("Put", "ServerSize", 1);
site.Invoke("SetInfo");// Create application virtual directory
DirectoryEntry siteVDir = site.Children.Add("Root", "IISWebVirtualDir");
siteVDir.Properties["AppIsolated"][0] = 2;
siteVDir.Properties["Path"][0] = pathToRoot;
siteVDir.Properties["AccessFlags"][0] = 513;
siteVDir.Properties["FrontPageWeb"][0] = 1;
siteVDir.Properties["AppRoot"][0] = "LM/W3SVC/"+siteID+"/Root";
siteVDir.Properties["AppFriendlyName"][0] = "Root";
siteVDir.CommitChanges();site.CommitChanges();
return siteID;
}
}}