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(); }