I have a master 'VisualSVN server`. It contains tens of repositories with many revisions.
In order to have a replication, I have configured a Slave Server
.
Currently I can create new Slave VDFS
repositories and make them in sync with Master Server with no issues and all configuration to allow Slave partner to connect to Master server using a self-signed certificate is done properly.
Since number of repositories is not small, so I tried to use method described in Deploying VDFS slave repositories using replication seeds.
All the process goes well until I tried to import repository to master server and Master server says: Access is denied
. As I already mentioned, I can connect to Master server using certificate that I generated but for Importing repository there are not options to tell the VisualSVN Server to authenticate the Slave Server by certificate.
I saw this in the master server event logs:
It said that Active Directory
authentication method is used while I should use Certificate
for authentication.
I tried to do this using VisualSVN PowerShell Import-SvnRepository Command however it also failed as well and here is the log:
PS E:\Repositories> Import-SvnRepository D:\Temp\Repo1\Repo1 -DestinationName Repo1 -Verbose
VERBOSE: Running the following operation: CIM method Import on the ROOT\VisualSVN\PS_SvnRepository CIM object.
Import-SvnRepository : Failed to access the remote VDFS service
The remote procedure call failed: Access is denied.
At line:1 char:1
+ Import-SvnRepository D:\Temp\Repo1\Repo1 -DestinationNa ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (PS_SvnRepository:ROOT\VisualSVN\PS_SvnRepository) [Import-SvnRepository],
CimException
+ FullyQualifiedErrorId : HRESULT 0x80041001,Import-SvnRepository
The help for this command is as below:
The question is how can I enforce Certifcate-Based
authentication for Importing the repository from the repository seed?
Unfortunately, the current version of the VisualSVN Server Manager console doesn't let you import a replication seed that has to connect to master using certificate-based authentication. So you need to modify the replication settings of the replication seed before importing it.
Export a replication seed and then modify its /db/vdfs.conf
file. You can also use the /db/vdfs.conf
file from your other working slave repositories as an example.
vdfs.conf:
[general]
role = slave
master-hostname = MASTER-SERVER-HOSTNAME
master-path = MASTER-REPOSITORY-NAME
[authentication]
type = schannel
mutual = yes
Change mutual
to no
if you don't want to use mutual authentication by certificates.
After you modify /db/vdfs.conf
of the replication seed, try importing it again.