Incredible, thanks! ----------- Jesse Liberty, President Liberty Associates, Inc. http://www.LibertyAssociates.com
> -----Original Message----- > From: Moderated discussion of advanced .NET topics. > [mailto:[EMAIL PROTECTED] On Behalf Of Rob > MacFadyen > Sent: Sunday, October 12, 2003 6:51 PM > To: [EMAIL PROTECTED] > Subject: Re: [ADVANCED-DOTNET] Creating virtual directories > programmatically > > > Jesse, > > You can create virtual directories programmatically. You need > to use ADSI... and can do either with VBScript or directly from C#. > > Here's an old chunk of code that creates a virtual directory: > /// <summary> /// Create a virtual directory /// </summary> > /// <param name="WebSite">1 for the default website, 2 etc > for non-default web sites</param> /// <param > name="VDirName">Name of directory to create</param> /// > <param name="Path">File system path for directory</param> /// > <param name="RootDir">Create a root level directory or actual > virtual directory</param> private void CreateVDir(string > WebSite, string VDirName, string Path, bool > RootDir) > { > System.DirectoryServices.DirectoryEntry IISSchema; > System.DirectoryServices.DirectoryEntry IISAdmin; > System.DirectoryServices.DirectoryEntry VDir; > bool IISUnderNT; > > // > // Determine rough version of IIS > // > IISSchema = new > System.DirectoryServices.DirectoryEntry("IIS://localhost/Schem > a/AppIsolated"); > if > (IISSchema.Properties["Syntax"].Value.ToString().ToUpper() == > "BOOLEAN") > IISUnderNT = true; > else > IISUnderNT = false; > IISSchema.Dispose(); > > // > // Get the admin object > // > IISAdmin = new > System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC > /" + WebSite + "/Root"); > > // > // If we're not creating a root directory > // > if (!RootDir) > { > // > // If the virtual directory already exists then delete it > // > foreach(System.DirectoryServices.DirectoryEntry v in > IISAdmin.Children) > { > if (v.Name == VDirName) > { > // > // Delete the specified virtual directory if > it already exists > // > IISAdmin.Invoke("Delete", new string [] { > v.SchemaClassName, VDirName }); > IISAdmin.CommitChanges(); > } > } > } > > // > // Create the virtual directory > // > if (!RootDir) > { > VDir = IISAdmin.Children.Add(VDirName, "IIsWebVirtualDir"); > } > else > { > VDir = IISAdmin; > } > > // > // Setup the VDir > // > VDir.Properties["AccessRead"][0] = true; > VDir.Properties["AccessExecute"][0] = true; > VDir.Properties["AccessWrite"][0] = false; > VDir.Properties["AccessScript"][0] = true; > VDir.Properties["AuthNTLM"][0] = false; > VDir.Properties["EnableDefaultDoc"][0] = true; > VDir.Properties["EnableDirBrowsing"][0] = false; > VDir.Properties["DefaultDoc"][0] = true; > VDir.Properties["Path"][0] = Path; > > // > // NT doesn't support this property > // > if (!IISUnderNT) > { > VDir.Properties["AspEnableParentPaths"][0] = true; > } > > // > // Set the changes in stone > // > VDir.CommitChanges(); > > // > // Make it a web application > // > if (IISUnderNT) > { > VDir.Invoke("AppCreate", false); > } > else > { > VDir.Invoke("AppCreate2", 1); > } > } > > > Regards, > > Rob > -- > RMTrack a great bug tracking tool! Fully customizable, > automated workflow, e-mail notification, import utility, and > much much more. Setup a demo at www.rmtrack.com (version > 1.2.2 now available!) > > =================================== > This list is hosted by DevelopMentorR http://www.develop.com > NEW! ASP.NET courses you may be interested in: > > 2 Days of ASP.NET, 29 Sept 2003, in Redmond > http://www.develop.com/courses/2daspdotnet > > Guerrilla > ASP.NET, 13 Oct 2003, in Boston > http://www.develop.com/courses/gaspdotnet > > View archives and > manage your subscription(s) at http://discuss.develop.com > > =================================== This list is hosted by DevelopMentor� http://www.develop.com NEW! ASP.NET courses you may be interested in: 2 Days of ASP.NET, 29 Sept 2003, in Redmond http://www.develop.com/courses/2daspdotnet Guerrilla ASP.NET, 13 Oct 2003, in Boston http://www.develop.com/courses/gaspdotnet View archives and manage your subscription(s) at http://discuss.develop.com
