Oprette website med DirectoryEntry
Hej eksperter,Jeg har følgende klasse, som jeg bruger til at oprette et website på en webserver. Har prøvet at oprette site både på win2k og win2k3 std. Men når jeg efterfølgende går ind på sitet via en browser får jeg :
HTTP/1.1 New Application Failed
Hvis jeg så manuelt går ind i "Home directory" fanebladet i properties for mit website og trykker på "remove" kanppen i "application settings" afsnittet, og derefter "create", Så virker sitet uden problemer ?
what to do ?
Klassen :
using System;
using System.DirectoryServices;
namespace exp
{
/// <summary>
/// Summary description for IISutils.
/// </summary>
public class IISutils {
public IISutils() {
}
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 site
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:"+webSiteName);
site.Invoke("SetInfo");
site.Invoke("Put", "DefaultDoc", "Default.asp,default.aspx");
site.Invoke("Put", "ServerAutoStart", 0);
site.Invoke("Put", "ServerSize", 2);
site.Invoke("SetInfo");
// Create application virtual directory
DirectoryEntry siteVDir = (DirectoryEntry)site.Invoke("Create","IIsWebVirtualDir", "ROOT");
siteVDir.Properties["Path"][0] = pathToRoot;
site.Invoke("SetInfo");
siteVDir.Properties["AppFriendlyName"][0]=webSiteName + " Application";
siteVDir.Properties["AppIsolated"][0] = 2;
siteVDir.Properties["FrontPageWeb"][0] = 0;
siteVDir.Invoke("AppCreate2",2);
siteVDir.Properties["AppPoolId"][0]= "DefaultAppPool";
siteVDir.Properties["AccessRead"][0] = 1;
siteVDir.Properties["AccessWrite"][0] = 0;
siteVDir.Properties["EnableDirBrowsing"][0] = 1;
siteVDir.Properties["EnableDefaultDoc"][0] = 1;
siteVDir.Properties["AccessScript"][0] = 1;
siteVDir.Properties["AppRoot"][0] = "LM/W3SVC/"+siteID+"/Root";
siteVDir.Properties["EnableDirBrowsing"][0] = 0;
site.CommitChanges();
siteVDir.CommitChanges();
return siteID;
}
}
}
