public DynamicServiceInfoObject GetServiceInfo()
        {
            var dynamicServiceInfoObject = new DynamicServiceInfoObject
            {
                IISVersion       = HttpRuntime.IISVersion.ToString(),
                TargetFramework  = HttpRuntime.TargetFramework.ToString(),
                AppDomainAppPath = HttpRuntime.AppDomainAppPath
            };

            #region Assembly info

            var          assemblyStringBuilder = new StringBuilder();
            Assembly     currentAssembly       = typeof(DynamicController).Assembly;
            AssemblyName currentAssemblyName   = currentAssembly.GetName();
            assemblyStringBuilder.AppendLine(string.Format("Name={0}, Version={1}, Culture={2}, PublicKey token={3}",
                                                           currentAssemblyName.Name, currentAssemblyName.Version, currentAssemblyName.CultureInfo.Name, (BitConverter.ToString(currentAssemblyName.GetPublicKeyToken()))));
            foreach (AssemblyName referencedAssemblyName in currentAssembly.GetReferencedAssemblies())
            {
                assemblyStringBuilder.AppendLine(string.Format("Name={0}, Version={1}, Culture={2}, PublicKey token={3}",
                                                               referencedAssemblyName.Name, referencedAssemblyName.Version, referencedAssemblyName.CultureInfo.Name, (BitConverter.ToString(referencedAssemblyName.GetPublicKeyToken()))));
            }
            dynamicServiceInfoObject.AssemblyDictionary = assemblyStringBuilder.ToString();

            #endregion

            #region Settings info

            var settingsStringBuilder = new StringBuilder();
            foreach (var key in ConfigurationManager.AppSettings.Keys)
            {
                settingsStringBuilder.AppendLine(string.Format("{0}={1}", key, ConfigurationManager.AppSettings[key.ToString()]));
            }
            dynamicServiceInfoObject.AppSettings = settingsStringBuilder.ToString();

            #endregion

            #region Database info

            try
            {
                using (SqlConnection connection = new SqlConnection(DynamicContext.cConnectionStringSettings.ConnectionString))
                {
                    SqlCommand command = new SqlCommand(@"
SELECT  
    SERVERPROPERTY('productversion') as 'Product Version', 
    SERVERPROPERTY('productlevel') as 'Patch Level',  
    SERVERPROPERTY('edition') as 'Product Edition',
    SERVERPROPERTY('buildclrversion') as 'CLR Version',
    SERVERPROPERTY('collation') as 'Default Collation',
    SERVERPROPERTY('instancename') as 'Instance',
    SERVERPROPERTY('servername') as 'Server Name'", connection);
                    connection.Open();

                    SqlDataReader reader = command.ExecuteReader();
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            dynamicServiceInfoObject.SQLProductVersion   = reader.GetString(0);
                            dynamicServiceInfoObject.SQLPatchLevel       = reader.GetString(1);
                            dynamicServiceInfoObject.SQLProductEdition   = reader.GetString(2);
                            dynamicServiceInfoObject.SQLCLRVersion       = reader.GetString(3);
                            dynamicServiceInfoObject.SQLDefaultCollation = reader.GetString(4);
                            dynamicServiceInfoObject.SQLInstance         = reader.GetString(5);
                            dynamicServiceInfoObject.SQLServerName       = reader.GetString(6);
                        }
                    }
                    reader.Close();
                    //connection.Close();
                }
            }
            catch (Exception ex)
            {
                DynamicLogger.Instance.WriteLoggerLogError("GetServiceInfo", ex);
            }

            #endregion

            return(dynamicServiceInfoObject);
        }
        public DynamicServiceInfoObject GetServiceInfo()
        {
            var dynamicServiceInfoObject = new DynamicServiceInfoObject
            {
                IISVersion = HttpRuntime.IISVersion.ToString(),
                TargetFramework = HttpRuntime.TargetFramework.ToString(),
                AppDomainAppPath = HttpRuntime.AppDomainAppPath
            };

            #region Assembly info

            var assemblyStringBuilder = new StringBuilder();
            Assembly currentAssembly = typeof(DynamicController).Assembly;
            AssemblyName currentAssemblyName = currentAssembly.GetName();
            assemblyStringBuilder.AppendLine(string.Format("Name={0}, Version={1}, Culture={2}, PublicKey token={3}",
                currentAssemblyName.Name, currentAssemblyName.Version, currentAssemblyName.CultureInfo.Name, (BitConverter.ToString(currentAssemblyName.GetPublicKeyToken()))));
            foreach (AssemblyName referencedAssemblyName in currentAssembly.GetReferencedAssemblies())
            {
                assemblyStringBuilder.AppendLine(string.Format("Name={0}, Version={1}, Culture={2}, PublicKey token={3}",
                    referencedAssemblyName.Name, referencedAssemblyName.Version, referencedAssemblyName.CultureInfo.Name, (BitConverter.ToString(referencedAssemblyName.GetPublicKeyToken()))));
            }
            dynamicServiceInfoObject.AssemblyDictionary = assemblyStringBuilder.ToString();

            #endregion

            #region Settings info

            var settingsStringBuilder = new StringBuilder();
            foreach (var key in ConfigurationManager.AppSettings.Keys)
            {
                settingsStringBuilder.AppendLine(string.Format("{0}={1}", key, ConfigurationManager.AppSettings[key.ToString()]));
            }
            dynamicServiceInfoObject.AppSettings = settingsStringBuilder.ToString();

            #endregion

            #region Database info

            try
            {
                using (SqlConnection connection = new SqlConnection(DynamicContext.cConnectionStringSettings.ConnectionString))
                {
                    SqlCommand command = new SqlCommand(@"
SELECT  
    SERVERPROPERTY('productversion') as 'Product Version', 
    SERVERPROPERTY('productlevel') as 'Patch Level',  
    SERVERPROPERTY('edition') as 'Product Edition',
    SERVERPROPERTY('buildclrversion') as 'CLR Version',
    SERVERPROPERTY('collation') as 'Default Collation',
    SERVERPROPERTY('instancename') as 'Instance',
    SERVERPROPERTY('servername') as 'Server Name'", connection);
                    connection.Open();

                    SqlDataReader reader = command.ExecuteReader();
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            dynamicServiceInfoObject.SQLProductVersion = reader.GetString(0);
                            dynamicServiceInfoObject.SQLPatchLevel = reader.GetString(1);
                            dynamicServiceInfoObject.SQLProductEdition = reader.GetString(2);
                            dynamicServiceInfoObject.SQLCLRVersion = reader.GetString(3);
                            dynamicServiceInfoObject.SQLDefaultCollation = reader.GetString(4);
                            dynamicServiceInfoObject.SQLInstance = reader.GetString(5);
                            dynamicServiceInfoObject.SQLServerName = reader.GetString(6);
                        }
                    }
                    reader.Close();
                    connection.Close();
                }
            }
            catch (Exception ex)
            {
                DynamicLogger.Instance.WriteLoggerLogError("GetServiceInfo", ex);
            }

            #endregion

            return dynamicServiceInfoObject;
        }