private static string PreValidateCreateServiceInstance(CreateServiceInstanceRequest request)
        {
            var validationErrors = new StringBuilder();
            string validationError = string.Empty;

            if (!ServiceContext.HostSettings.IsAdminServiceHost)
            {
                validationErrors.AppendLine("New service instances can only be created from the admin service instance.");
            }
            else
            {
                // Validate service database creation
                var database = new BusinessServiceDatabase(request.DatabaseInstanceName, request.DatabaseName, request.AppPoolUserName, request.ServicesName, request.DatabaseBehavior, request.SampleDataScript);
                validationError = database.PreValidateCreate();

                if (!string.IsNullOrEmpty(validationError))
                    validationErrors.AppendLine(validationError);

                // Validate target folder for service files
                if (!request.AllowServiceInstanceOverwrite)
                {
                    var targetFolder = GetServicesInstancePhysicalPath(request.ServicesName);

                    if (Directory.Exists(targetFolder))
                        validationErrors.AppendLine(string.Format(CultureInfo.InvariantCulture, "A physical folder for services ({0}) already exists at: {1}", request.ServicesName, targetFolder));
                }

                // Validate IIS configuration for service
                validationError = IISUtilities.PreValidateBuildIISEntities(request);

                if (!string.IsNullOrEmpty(validationError))
                    validationErrors.AppendLine(validationError);

                // Validate Audit configuration
                validationError = AuditingServiceManager.PreValidateAddAuditSiteSubscriptionId();

                if (!string.IsNullOrEmpty(validationError))
                    validationErrors.AppendLine(validationError);
            }

            return validationErrors.ToString();
        }