diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/EnterpriseStorage/EnterpriseStorageController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/EnterpriseStorage/EnterpriseStorageController.cs
index dbab4f3a..d7510e2f 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/EnterpriseStorage/EnterpriseStorageController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/EnterpriseStorage/EnterpriseStorageController.cs
@@ -742,7 +742,7 @@ namespace WebsitePanel.EnterpriseServer
if (web.VirtualDirectoryExists(site, vdirName))
return BusinessErrorCodes.ERROR_VDIR_ALREADY_EXISTS;
- web.CreateVirtualDirectory(site, dir);
+ web.CreateEnterpriseStorageVirtualDirectory(site, dir);
return 0;
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/IWebServer.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/IWebServer.cs
index 4040b1a9..88541de6 100644
--- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/IWebServer.cs
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/IWebServer.cs
@@ -65,6 +65,7 @@ namespace WebsitePanel.Providers.Web
WebVirtualDirectory[] GetVirtualDirectories(string siteId);
WebVirtualDirectory GetVirtualDirectory(string siteId, string directoryName);
void CreateVirtualDirectory(string siteId, WebVirtualDirectory directory);
+ void CreateEnterpriseStorageVirtualDirectory(string siteId, WebVirtualDirectory directory);
void UpdateVirtualDirectory(string siteId, WebVirtualDirectory directory);
void DeleteVirtualDirectory(string siteId, string directoryName);
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs
index d6a36722..22f33a5b 100644
--- a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs
@@ -1658,6 +1658,39 @@ namespace WebsitePanel.Providers.Web
}
}
+ ///
+ /// Creates virtual iisDirObject under site (Enterprise Storage) with specified id.
+ ///
+ /// Site's id to create virtual iisDirObject under.
+ /// Virtual iisDirObject description.
+ public override void CreateEnterpriseStorageVirtualDirectory(string siteId, WebVirtualDirectory directory)
+ {
+ // Create iisDirObject folder if not exists.
+ if (!FileUtils.DirectoryExists(directory.ContentPath))
+ {
+ FileUtils.CreateDirectory(directory.ContentPath);
+ }
+ //
+ WebSite webSite = GetSite(siteId);
+ // copy props from parent site
+ directory.ParentSiteName = siteId;
+ directory.AspNetInstalled = webSite.AspNetInstalled;
+ directory.ApplicationPool = webSite.ApplicationPool;
+ // Create record in IIS's configuration.
+ webObjectsSvc.CreateVirtualDirectory(siteId, directory.VirtualPath, directory.ContentPath);
+
+ using (ServerManager srvman = webObjectsSvc.GetServerManager())
+ {
+ PropertyBag bag = anonymAuthSvc.GetAuthenticationSettings(srvman, siteId);
+ directory.AnonymousUsername = (string)bag[AuthenticationGlobals.AnonymousAuthenticationUserName];
+ directory.AnonymousUserPassword = (string)bag[AuthenticationGlobals.AnonymousAuthenticationPassword];
+ }
+ // Update virtual directory (set parent site pool)
+ webObjectsSvc.UpdateVirtualDirectory(directory);
+ // Disable Anonymous Authentication
+ SetAnonymousAuthentication(directory);
+ }
+
///
/// Updates virtual iisDirObject settings.
///
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs60/IIs60.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs60/IIs60.cs
index b662503d..6a81fbdd 100644
--- a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs60/IIs60.cs
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs60/IIs60.cs
@@ -1165,6 +1165,11 @@ namespace WebsitePanel.Providers.Web
UpdateVirtualDirectory(siteId, directory, false);
}
+ public virtual void CreateEnterpriseStorageVirtualDirectory(string siteId, WebVirtualDirectory directory)
+ {
+
+ }
+
public virtual void UpdateVirtualDirectory(string siteId, WebVirtualDirectory directory)
{
UpdateVirtualDirectory(siteId, directory, true);
diff --git a/WebsitePanel/Sources/WebsitePanel.Server.Client/WebServerProxy.cs b/WebsitePanel/Sources/WebsitePanel.Server.Client/WebServerProxy.cs
index 7deacb38..b9b4ebda 100644
--- a/WebsitePanel/Sources/WebsitePanel.Server.Client/WebServerProxy.cs
+++ b/WebsitePanel/Sources/WebsitePanel.Server.Client/WebServerProxy.cs
@@ -124,6 +124,8 @@ namespace WebsitePanel.Providers.Web
private System.Threading.SendOrPostCallback CreateVirtualDirectoryOperationCompleted;
+ private System.Threading.SendOrPostCallback CreateEnterpriseStorageVirtualDirectoryOperationCompleted;
+
private System.Threading.SendOrPostCallback UpdateVirtualDirectoryOperationCompleted;
private System.Threading.SendOrPostCallback DeleteVirtualDirectoryOperationCompleted;
@@ -352,6 +354,9 @@ namespace WebsitePanel.Providers.Web
///
public event CreateVirtualDirectoryCompletedEventHandler CreateVirtualDirectoryCompleted;
+ ///
+ public event CreateEnterpriseStorageVirtualDirectoryCompletedEventHandler CreateEnterpriseStorageVirtualDirectoryCompleted;
+
///
public event UpdateVirtualDirectoryCompletedEventHandler UpdateVirtualDirectoryCompleted;
@@ -2070,6 +2075,57 @@ namespace WebsitePanel.Providers.Web
}
}
+ ///
+ [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreateEnterpriseStorageVirtualDirectory", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+ public void CreateEnterpriseStorageVirtualDirectory(string siteId, WebVirtualDirectory directory)
+ {
+ this.Invoke("CreateEnterpriseStorageVirtualDirectory", new object[] {
+ siteId,
+ directory});
+ }
+
+ ///
+ public System.IAsyncResult BeginCreateEnterpriseStorageVirtualDirectory(string siteId, WebVirtualDirectory directory, System.AsyncCallback callback, object asyncState)
+ {
+ return this.BeginInvoke("CreateEnterpriseStorageVirtualDirectory", new object[] {
+ siteId,
+ directory}, callback, asyncState);
+ }
+
+ ///
+ public void EndCreateEnterpriseStorageVirtualDirectory(System.IAsyncResult asyncResult)
+ {
+ this.EndInvoke(asyncResult);
+ }
+
+ ///
+ public void CreateEnterpriseStorageVirtualDirectoryAsync(string siteId, WebVirtualDirectory directory)
+ {
+ this.CreateEnterpriseStorageVirtualDirectoryAsync(siteId, directory, null);
+ }
+
+ ///
+ public void CreateEnterpriseStorageVirtualDirectoryAsync(string siteId, WebVirtualDirectory directory, object userState)
+ {
+ if ((this.CreateEnterpriseStorageVirtualDirectoryOperationCompleted == null))
+ {
+ this.CreateEnterpriseStorageVirtualDirectoryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateEnterpriseStorageVirtualDirectoryOperationCompleted);
+ }
+ this.InvokeAsync("CreateEnterpriseStorageVirtualDirectory", new object[] {
+ siteId,
+ directory}, this.CreateEnterpriseStorageVirtualDirectoryOperationCompleted, userState);
+ }
+
+ private void OnCreateEnterpriseStorageVirtualDirectoryOperationCompleted(object arg)
+ {
+ if ((this.CreateEnterpriseStorageVirtualDirectoryCompleted != null))
+ {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.CreateEnterpriseStorageVirtualDirectoryCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
///
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/UpdateVirtualDirectory", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
@@ -6162,6 +6218,10 @@ namespace WebsitePanel.Providers.Web
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void CreateVirtualDirectoryCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
+ public delegate void CreateEnterpriseStorageVirtualDirectoryCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
+
///
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void UpdateVirtualDirectoryCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
diff --git a/WebsitePanel/Sources/WebsitePanel.Server/WebServer.asmx.cs b/WebsitePanel/Sources/WebsitePanel.Server/WebServer.asmx.cs
index 3e8b11d6..4d040f41 100644
--- a/WebsitePanel/Sources/WebsitePanel.Server/WebServer.asmx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.Server/WebServer.asmx.cs
@@ -366,6 +366,22 @@ namespace WebsitePanel.Server
}
}
+ [WebMethod, SoapHeader("settings")]
+ public void CreateEnterpriseStorageVirtualDirectory(string siteId, WebVirtualDirectory directory)
+ {
+ try
+ {
+ Log.WriteStart("'{0}' CreateEnterpriseStorageVirtualDirectory", ProviderSettings.ProviderName);
+ WebProvider.CreateEnterpriseStorageVirtualDirectory(siteId, directory);
+ Log.WriteEnd("'{0}' CreateEnterpriseStorageVirtualDirectory", ProviderSettings.ProviderName);
+ }
+ catch (Exception ex)
+ {
+ Log.WriteError(String.Format("'{0}' CreateEnterpriseStorageVirtualDirectory", ProviderSettings.ProviderName), ex);
+ throw;
+ }
+ }
+
[WebMethod, SoapHeader("settings")]
public void UpdateVirtualDirectory(string siteId, WebVirtualDirectory directory)
{