public static void CreateServiceInstance(CreateServiceInstanceRequest request)
        {
            lock (_threadLock)
            {
                // Validate new service instance parameters
                var validationErrors = PreValidateCreateServiceInstance(request);

                if (!string.IsNullOrEmpty(validationErrors))
                    throw new BusinessException(validationErrors);

                if (!request.ValidateOnly)
                {
                    // Provision the business service database
                    var database = new BusinessServiceDatabase(request.DatabaseInstanceName, request.DatabaseName, request.AppPoolUserName, request.ServicesName, request.DatabaseBehavior, request.SampleDataScript);
                    database.Create();
                    database.CreateServiceUser(request.DefaultAdminUserName, request.DefaultAdminUserPassword, 3);
                    database.CreateServiceUser(request.DefaultPublicUserName, request.DefaultPublicUserPassword, 2);

                    // Create services folder structure
                    var auditSiteSubscriptionId = GetEffectiveAuditSiteSubscriptionId(request.AuditSiteSubscriptionId, request.ServicesName);
                    var targetFolder = GetServicesInstancePhysicalPath(request.ServicesName);

                    FileUtilties.CreateDirectory(targetFolder);
                    FileUtilties.Copy(AdminServicesPhysicalPath, targetFolder);

                    // Create IIS configuration
                    IISUtilities.BuildIISEntities(request, targetFolder);

                    // Create web.config file for service instance
                    BusinessServiceConfiguration.CreateCustomConfig(Path.Combine(targetFolder, "Web.config"), database, request.ServicesName, auditSiteSubscriptionId);

                    // Register new instance with auditing service
                    AuditingServiceManager.AddAuditSiteSubscriptionId(auditSiteSubscriptionId);
                    AuditingServiceManager.RestartAuditingService();
                }
            }
        }