From d826a96f6dbc36e9fcc0d5037dd8607d2a8c458b Mon Sep 17 00:00:00 2001 From: feodor_fitsner Date: Thu, 13 Sep 2012 19:51:24 -0700 Subject: [PATCH] Added separate providers for IIS 8 and FTP 8 --- .../WebsitePanel.Installer/Updater.exe | Bin 199168 -> 198144 bytes WebsitePanel/Database/update_db.sql | 4 +- .../WebsitePanel.Providers.FTP.IIs70/MsFTP.cs | 2 +- .../MsFTP80.cs | 35 +++++++++ .../Properties/AssemblyInfo.cs | 21 ++++++ .../WebsitePanel.Providers.FTP.IIs80.csproj | 65 +++++++++++++++++ .../WebsitePanel.Providers.Web.IIS70/IIs70.cs | 2 +- .../Properties/AssemblyInfo.cs | 12 +-- .../WebsitePanel.Providers.Web.IIs80/IIs80.cs | 30 ++++++++ .../Properties/AssemblyInfo.cs | 21 ++++++ .../WebsitePanel.Providers.Web.IIs80.csproj | 69 ++++++++++++++++++ WebsitePanel/Sources/WebsitePanel.Server.sln | 26 ++++++- 12 files changed, 271 insertions(+), 16 deletions(-) create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs80/MsFTP80.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs80/Properties/AssemblyInfo.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs80/WebsitePanel.Providers.FTP.IIs80.csproj create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/IIs80.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/Properties/AssemblyInfo.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/WebsitePanel.Providers.Web.IIs80.csproj diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Updater.exe b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Updater.exe index c3ae2314559b6a29258c95d088490b790021acb4..ec61a4ff7664a2132abea21bc7885734ec98498e 100644 GIT binary patch delta 29104 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 t7396PsUke% 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 delta 30110 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 diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index a19a94b4..4443fe81 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -29,7 +29,7 @@ GO -- IIS 8.0 IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Internet Information Services 8.0') BEGIN -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (105, 2, N'IIS80', N'Internet Information Services 8.0', N'WebsitePanel.Providers.Web.IIs70, WebsitePanel.Providers.Web.IIs70', N'IIS70', NULL) +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (105, 2, N'IIS80', N'Internet Information Services 8.0', N'WebsitePanel.Providers.Web.IIs80, WebsitePanel.Providers.Web.IIs80', N'IIS70', NULL) END GO @@ -168,7 +168,7 @@ GO -- MS FTP 8.0 IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Microsoft FTP Server 8.0') BEGIN -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (106, 3, N'MSFTP80', N'Microsoft FTP Server 8.0', N'WebsitePanel.Providers.FTP.MsFTP, WebsitePanel.Providers.FTP.IIs70', N'MSFTP70', NULL) +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (106, 3, N'MSFTP80', N'Microsoft FTP Server 8.0', N'WebsitePanel.Providers.FTP.MsFTP80, WebsitePanel.Providers.FTP.IIs80', N'MSFTP70', NULL) END GO diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs70/MsFTP.cs b/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs70/MsFTP.cs index ad7270c9..a7992fab 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs70/MsFTP.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs70/MsFTP.cs @@ -966,7 +966,7 @@ namespace WebsitePanel.Providers.FTP } RegistryKey ftp = root.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\ftpsvc"); - bool res = (value == 7 || value == 8) && ftp != null; + bool res = (value == 7) && ftp != null; if (ftp != null) ftp.Close(); diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs80/MsFTP80.cs b/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs80/MsFTP80.cs new file mode 100644 index 00000000..b16aa16e --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs80/MsFTP80.cs @@ -0,0 +1,35 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WebsitePanel.Providers.FTP +{ + public class MsFTP80 : MsFTP + { + protected new bool IsMsFTPInstalled() + { + int value = 0; + RegistryKey root = Registry.LocalMachine; + RegistryKey rk = root.OpenSubKey("SOFTWARE\\Microsoft\\InetStp"); + if (rk != null) + { + value = (int)rk.GetValue("MajorVersion", null); + rk.Close(); + } + + RegistryKey ftp = root.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\ftpsvc"); + bool res = (value == 8) && ftp != null; + if (ftp != null) + ftp.Close(); + + return res; + } + + public override bool IsInstalled() + { + return IsMsFTPInstalled(); + } + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs80/Properties/AssemblyInfo.cs b/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs80/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..8ae894a1 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs80/Properties/AssemblyInfo.cs @@ -0,0 +1,21 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("WebsitePanel.Providers.FTP.IIs80")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyProduct("WebsitePanel.Providers.FTP.IIs80")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("587b5738-51db-4525-bcf5-60de49e89be4")] \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs80/WebsitePanel.Providers.FTP.IIs80.csproj b/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs80/WebsitePanel.Providers.FTP.IIs80.csproj new file mode 100644 index 00000000..376d1c29 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs80/WebsitePanel.Providers.FTP.IIs80.csproj @@ -0,0 +1,65 @@ + + + + + Debug + AnyCPU + {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6} + Library + Properties + WebsitePanel.Providers.FTP.IIs80 + WebsitePanel.Providers.FTP.IIs80 + v3.5 + 512 + + + true + full + false + ..\WebsitePanel.Server\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\WebsitePanel.Server\bin\ + TRACE + prompt + 4 + + + + + + + + + + + + VersionInfo.cs + + + + + + + {684c932a-6c75-46ac-a327-f3689d89eb42} + WebsitePanel.Providers.Base + + + {a28bd694-c308-449f-8fd2-f08f3d54aba0} + WebsitePanel.Providers.FTP.IIs70 + + + + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs index 13c76f18..a773dae2 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs @@ -3488,7 +3488,7 @@ namespace WebsitePanel.Providers.Web rk.Close(); } - return value == 7 || value == 8; + return value == 7; } public override bool IsInstalled() diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/Properties/AssemblyInfo.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/Properties/AssemblyInfo.cs index fdf6fff1..ed50c061 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/Properties/AssemblyInfo.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/Properties/AssemblyInfo.cs @@ -18,14 +18,4 @@ using System.Runtime.InteropServices; [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("0eb18093-bb95-406a-ab78-a2e45f4cb972")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: \ No newline at end of file +[assembly: Guid("0eb18093-bb95-406a-ab78-a2e45f4cb972")] \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/IIs80.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/IIs80.cs new file mode 100644 index 00000000..96cbac29 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/IIs80.cs @@ -0,0 +1,30 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WebsitePanel.Providers.Web +{ + public class IIs80 : IIs70, IWebServer + { + public new bool IsIISInstalled() + { + int value = 0; + RegistryKey root = Registry.LocalMachine; + RegistryKey rk = root.OpenSubKey("SOFTWARE\\Microsoft\\InetStp"); + if (rk != null) + { + value = (int)rk.GetValue("MajorVersion", null); + rk.Close(); + } + + return value == 8; + } + + public override bool IsInstalled() + { + return IsIISInstalled(); + } + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/Properties/AssemblyInfo.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..3e0804f1 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/Properties/AssemblyInfo.cs @@ -0,0 +1,21 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("WebsitePanel.Providers.Web.IIs80")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyProduct("WebsitePanel.Providers.Web.IIs80")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b0305c67-ead3-4d69-a0d8-548f6d0f705b")] \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/WebsitePanel.Providers.Web.IIs80.csproj b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/WebsitePanel.Providers.Web.IIs80.csproj new file mode 100644 index 00000000..a4a33fb4 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs80/WebsitePanel.Providers.Web.IIs80.csproj @@ -0,0 +1,69 @@ + + + + + Debug + AnyCPU + {6E348968-461D-45A1-B235-4F552947B9F1} + Library + Properties + WebsitePanel.Providers.Web + WebsitePanel.Providers.Web.IIs80 + v3.5 + 512 + + + true + full + false + ..\WebsitePanel.Server\bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\WebsitePanel.Server\bin\ + TRACE + prompt + 4 + + + + + + + + + + + + VersionInfo.cs + + + + + + + {684c932a-6c75-46ac-a327-f3689d89eb42} + WebsitePanel.Providers.Base + + + {9be0317d-e42e-4ff6-9a87-8c801f046ea1} + WebsitePanel.Providers.Web.IIs60 + + + {1b9dce85-c664-49fc-b6e1-86c63cab88d1} + WebsitePanel.Providers.Web.IIs70 + + + + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.Server.sln b/WebsitePanel/Sources/WebsitePanel.Server.sln index d05bb799..138b2957 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server.sln +++ b/WebsitePanel/Sources/WebsitePanel.Server.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2010 +# Visual Studio 2012 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Caching Application Block", "Caching Application Block", "{C8E6F2E4-A5B8-486A-A56E-92D864524682}" ProjectSection(SolutionItems) = preProject Bin\Microsoft.Practices.EnterpriseLibrary.Common.dll = Bin\Microsoft.Practices.EnterpriseLibrary.Common.dll @@ -107,6 +107,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Mail EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.OS.Windows2012", "WebsitePanel.Providers.OS.Windows2012\WebsitePanel.Providers.OS.Windows2012.csproj", "{27130BBB-76FA-411E-8B4D-51CD4DC821AF}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Web.IIs80", "WebsitePanel.Providers.Web.IIs80\WebsitePanel.Providers.Web.IIs80.csproj", "{6E348968-461D-45A1-B235-4F552947B9F1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.FTP.IIs80", "WebsitePanel.Providers.FTP.IIs80\WebsitePanel.Providers.FTP.IIs80.csproj", "{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -587,6 +591,26 @@ Global {27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|Mixed Platforms.Build.0 = Release|Any CPU {27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|x86.ActiveCfg = Release|Any CPU + {6E348968-461D-45A1-B235-4F552947B9F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E348968-461D-45A1-B235-4F552947B9F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E348968-461D-45A1-B235-4F552947B9F1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6E348968-461D-45A1-B235-4F552947B9F1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {6E348968-461D-45A1-B235-4F552947B9F1}.Debug|x86.ActiveCfg = Debug|Any CPU + {6E348968-461D-45A1-B235-4F552947B9F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E348968-461D-45A1-B235-4F552947B9F1}.Release|Any CPU.Build.0 = Release|Any CPU + {6E348968-461D-45A1-B235-4F552947B9F1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {6E348968-461D-45A1-B235-4F552947B9F1}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {6E348968-461D-45A1-B235-4F552947B9F1}.Release|x86.ActiveCfg = Release|Any CPU + {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Debug|x86.ActiveCfg = Debug|Any CPU + {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Any CPU.Build.0 = Release|Any CPU + {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE