public static int AddVirtualDirectory(int siteItemId, string vdirName, string vdirPath) { // check account int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) return accountCheck; // load site item WebSite siteItem = (WebSite)PackageController.GetPackageItem(siteItemId); if (siteItem == null) return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // check package int packageCheck = SecurityContext.CheckPackage(siteItem.PackageId, DemandPackage.IsActive); if (packageCheck < 0) return packageCheck; // place log record TaskManager.StartTask("WEB_SITE", "ADD_VDIR", vdirName); TaskManager.ItemId = siteItemId; TaskManager.WriteParameter("Web site", siteItem.Name); try { // create virtual directory WebVirtualDirectory dir = new WebVirtualDirectory(); dir.Name = vdirName; dir.ContentPath = FilesController.GetFullPackagePath(siteItem.PackageId, vdirPath); dir.EnableAnonymousAccess = true; dir.EnableWindowsAuthentication = true; dir.EnableBasicAuthentication = false; //dir.InstalledDotNetFramework = aspNet; dir.DefaultDocs = null; // inherit from service dir.HttpRedirect = ""; dir.HttpErrors = null; dir.MimeMaps = null; // create directory WebServer web = new WebServer(); ServiceProviderProxy.Init(web, siteItem.ServiceId); if (web.VirtualDirectoryExists(siteItem.SiteId, vdirName)) return BusinessErrorCodes.ERROR_VDIR_ALREADY_EXISTS; web.CreateVirtualDirectory(siteItem.SiteId, dir); return 0; } catch (Exception ex) { throw TaskManager.WriteError(ex); } finally { TaskManager.CompleteTask(); } }