29045- The remote server does not exist or has not been designated as a valid publisher

K

KNC

Dear all,

We are struggling to set up Merge Replication model in our customer
environment, and currently we met some problems.

A. Phenomenon:
When syncing from pda, we got exception as follows:
Native error: 29045
HR: -2147198719
Description: The remote server does not exist or has not been
designated as a valid publisher

B. Let me explain more in detail.

1. Model:
We used Multiserver Scenarios: server B is Windows 2003 Server,
SQL Server 2000 SP4. Server A is Windows 2003 Server IIS 6.0, SQL
Server CE 2000 Server tools 2.0. And pda is Fujitsu Pocket PC 2003
connected to server A.
2. Network:
server B is in domain SV01, server A is in domain CGY, and they
are not trusted domain. Therefore from server A, we couldn't
ping/browse server A by FQDN or machine itself, but it could
ping/browse by IP address.
3. Set up replication on Server B (SQL Server)
- Created a windows user belong to local administrator of server B
- Created snapshot folder, shared to windows user above full
control, and also gave windows user full NTFS security control.
- Set up Replication, publishing succesffully to snapshot folder.

- TCP/IP enabled and 1433 as default port for TCP/IP protocol.
- SQL Server security is mixed mode authentication, and we use SQL
Server Authentication.
4. Set up Server Agent on Server A(IIS server)
- Created a windows user belong to local administrator of server A
with exactly the same user name and password with windows user of
server B.
- Used Connectivity Tools to create a virtual directoty.
- Virtual Directory Authentication is basic authentication
- In Basic Authentication, we used the default domain (CGY)
- IIS user is windows user of local server machine A
- The special thing is when inputting UNC path for snapshot
folder, as I said before that server A can't ping/browser server B by
name, consequently I input IP address instead. (e.g
\\10.23.65.20\Snapshot), it's OK go next and finish.

We could use IE on PC to browse to
http://serverB/ServerCE/sscesa20.dll with user/pasw of local server
machine A successfully.

5. Set up PDA
We could also use IE on PDA to browse to
http://serverB/ServerCE/sscesa20.dll with user/pasw of local server
machine A successfully.

6. Parameters for replication
InternetUrl: using IP address of server A
InternetLogin/InternetPassword: user name/password of server A and B
(because the same user name/password)
Publisher: IP address of server A
PublisherDatabase: publsiher DB
PublisherLogin/pasw: SQL server user/pasw
Publication: publication name

That's all, then we've got exception.

C. Solution we already applied to verify
1. Change publisher address from IP to machine name, FQDN -> still
exception
2. Give snapshot folder on SQL Server to full for everyone both share
and NTFS security, and re-run merge agent to publish new replication
data on snapshot folder -> still exception
3. Re-register Sscerp20.dll and sscesa20.dll -> still exception
4. Enable log on ISS server (LOGGING_LEVEL 3) -> even restart IIS and
machine, log does not is written. (I tried to search sscerepl.log
entire machine computer but not found)

D. So I have some questions:
1. Is the problem from UNC path on server agent which is IP adress,
whilst it should be machine name?
2. Is the problem from server A and B not in the same domain, or
trusted domain?
3. Is the problem from local user of server A not able to connect to
snapshot folder in server B even snapshot folder was shared to
everyone, and server B has also a local user with the same user
name/password?
4. Other ...?

Note: we also set up the development environment with 1 variation
that server A and B in the same workgroup, and it worked.

Very appreciated for any help.

Kind Regards,

Nguyen Truong Khanh
--------------------------------------
Project Manager
FPT-Software
ETown building, 7fl
264 Cong Hoa street, Tan Binh district, HCMC, Vietnam
Cell: 084-901-360-8285
Company: 084-8812-7800
 
S

Sebastian@IG&A::

Hi Nguyen,
I used to have that same proble and the thing with my code was that i
missed to add the subscription before replicat it.

I just added this line of code and it worked just fine.

repl.AddSubscription(AddOption.CreateDatabase);

repl is the intance of the SqlCeReplication class.

Greetings,
Sebastián
 
K

KNC

Hi Sebastián

Nope, I already added that line of code. Note that our code has been
works fine in case of server A and B in the same workgroup.

Below is our snippet of pseudo-code:

If Not System.IO.File.Exists(database file) Then
repl.AddSubscription(AddOption.CreateDatabase)
End If

Kind Regards,


Nguyen Truong Khanh
--------------------------------------
Project Manager
FPT-Software
ETown building, 7fl
264 Cong Hoa street, Tan Binh district, HCMC, Vietnam
Cell: 084-901-360-8285
Company: 084-8812-7800
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top