I am Having trouble trying to set up SQL Server Replication Utilising Web Synchronisation Where the
IIS(Web Server) is on a separate machine to the SQL Server(Publisher). I am using MSDE as the SQL Server Box, however even when I used SQLServer2000, or SQLServer2005 I have had no joy with the 2 separate Servers setup.
If I have the one server then I have no problems (i.e. One Server Setup)
Server A: Windows 2000,
with MSDE installed
enabled for Merge replication,
and has a Publication set up.
IIS Web Page Setup for Synchronisation
My SQL Server 2005 Mobile device syncs via the web page on ServerA Fine, no problems at all.
The Trouble is when I am trying to utilise SQL Server Replication as follows. (i.e. 2 Server Setup)
Basically I am using the Same ServerA as in the one Server setup I had above. All I have done is I am now using a Separate IIS Server for the Web Synchronisation ServerB
I have run the "Configure Web Synchronisation Wizard"(ConnWiz30.exe) on my web page on ServerB. And I am using Anonymous Access Authentication With Windows NT Authentication on my Web Server(ServerB),
the Anonymous User is a Domain user, and is the Same Domain User I used in the One Server setup which I had working (so this IIS Anonymous Domain user should have all permissions required on the ServerA (SQL Publisher) both Windows permissions and SQL Server Permissions.
Server A: Windows 2000,
with MSDE installed
enabled for Merge replication,
and has a Publication set up.
Server B: Windows XP, IIS Web Server(Web page enabled for Web Synchronisation)
I have a Mobile device as a subscriber, which is using Web Synchronisation on ServerB(Web Server), to sync with the ServerA (MSDE Box).
The error I am receiving is "A Call to SQL Server Reconciler has Failed" Try to resynchronise, "The Process Could Not deliver the Snapshot to the Subscriber"
A little extra info:
-I can remotely connect from my Web server(ServerB) to the SQL Box ServerA via a TCP/IP ODBC connection so remote connections does not seem to be an issue.
-If on My Mobile device if I try to Add a Subscription & Synchronise the replication using the
AddSubscription(AddOption.ExistingDatabase), it works fine. (Obviously the subscription database does exist before the synchronisation)
If I try to Add a Subscription & Synchronise the replication using the
AddSubscription(AddOption.CreateDatabase), I get the error as mentioned.
Is there something I have missed Any help you can provide is much appreciated.
Thanks.

The Process Could Not deliver the Snapshot to the Subscriber, using WebSynchronisation 2 server setup
Monte Chan
Out of interest, in your two server setup, on which server did you run the "Configure Web Synchronisation Wizard". You need to have the correct SQL components installed on the Web Server (IIS) box and run the "Configure Web Synchronisation Wizard" from there and NOT your Publisher/Distributor box.
Are you using FTP or UNC to deliver the snapshots
If UNC then where are the snapshots being stored Default folder, alternate folder etc..
UNC will be sensitive to the user accounts being used under basic authentication when connecting to IIS. If the user does not have the correct rights to access the snapshot folder then your problem can be reproduced.
Cheers
Rab
mahima
Hi Rab,
Out of the 2 servers I Ran the "Configure Web Synchronisation Wizard" on the IIS Web Server box.
Just an extra snippet of info is that the Web Syncronisation Wizard was also run on the Publisher/Distributor Box. This was because I had WebSynchronisation/Merge Replication set up on the 1 Server originally (which worked fine). The fact the "Configure Web Synchronisation Wizard" was run on both of the boxes shouldnt cause problems I believe, but let us know if otherwise.
I am using UNC to deliver the snapshot and the snapshot is located on the Publisher/Distributor box 'C:\Snapshot'. This Folder is setup as a Share called 'SnapShot' So the IIS Box is setup fro Web Synchronisation with the Snapshot location "[PublisherMachineName]\Snapshot". I have made sure that bothe the "C:\snapshot" folder and the Snapshot Share have permissions given to the Domain User Whom is used in 'Basic Authentication'.
I have also made the Domain User an Administrator of both Servers, just to try and make sure they have adequate permissions.
One thing which I dont entirely understand is how the WebServerAnd Publisher interact. I know the WebSynchronisation Needs to be run on the web server to tell it where the Snapshot is kept. But does the Publisher Need anything done to it so as it knows where the Web server is i.e. IP address etc(I know that SQL Server 2005 you can call sp_addMergePublication with the parameter @Web_Synchronsation_URL on the MergePublication). But does SQLServer2000/MSDE require some similar setting to point the publisher to the Web Server
Thanks for the advice.
incendy
Thanks for the reply Mahesh,
I Tried using basic authentication on the IIS Web Server. But had no luck with that. I still got the same error message "Could Not deliver the Snapshot to the Subscriber".
For the Basic Authentication I tried using 2 different domain users login/password accounts but no luck. Once again if I configure the Same Server which is the publisher/distributor to also have the web page on it and use basic authentication with the same to Domain users, it works if I synchronise that way. But as soon as I Try to have 2 separate servers and have a Web Page setup on a different server to the Publisher/Distributor it seems to fail.
So it has me very stumped still. Any other help is greatly appreciated. I have the code run on the Mobile device below. once it tries to run repl.Synchronize I get the error.
Dim repl As New SqlCeReplication()
repl.InternetUrl = "http://192.168.0.123/. . . /sqlcesa30.dll"
repl.Publisher = "ServerA\TestInstance"
repl.PublisherDatabase = "PublishMe"
repl.PublisherSecurityMode = SecurityType.NTAuthentication
repl.Publication = "PublishMe"
repl.Subscriber = "sqlmobile"
repl.SubscriberConnectionString = _
"Data Source='" + FileName + "';Password='';" _
& "Max Database Size='4090';Default Lock Escalation ='100';"
repl.AddSubscription(AddOption.CreateDatabase)
repl.Synchronize()
Thanks for any other tips you may have.
johnseab
can you try using Basic authentication instead of anonymous authentication.
My hunch is that since its a domain account, it may be hitting the issue of multiple hops.