Sql-server – SQL Replication across the internet give named pipe error

replicationsql serversql-server-2008-r2tcpip

We've had a db replication working between two servers across the internet.

Server A is sitting on our server network (Windows Server 2008 + SQL Server 2008 R2)
Server B is sitting on a different network (Windows Server 2008 + SQL Server 2008 R2)

Ports are still open, TCP and Named Pipes are enabled. Alias configured, TCP and ports open in the firewall, everything was smooth and working.
All SQL Services are also running.

Server A is the publisher and Server B is the subscriber.

It's been using a Push subscription so everything was working on Server A.

All data was synced and everything was fine.

After a server issue on Server A, the DB name changed, the replication and publication was recreated and Server A was upgraded to SQL Server 2008 R2 SP3.

So far that's the only noticeable difference between the two, the publisher is running SQL 10.50.6000.34 and the subscriber 10.50.2500.0.

Now the replication stopped working and I'm not able to connect the two via named pipes..

If I try to create a new subscription from either server and use the server name (for replications you need to use the server name instead of TCP) I keep getting named pipe error

Named Pipe error

I can ping each Server from the other server.
I can connect from SQL Management Studio using tcp with domain or ip and run queries on the other server.
I can add them as linked servers and see the data as well.

But the moment I go to create new subscription and add the remote subscriber I get the named pipe error.

Best Answer

I've finally managed to connecto both servers!

As it turns out even though both server are x64 and running 64bit os and SQL Server 64 bit, it needs the aliases to be configured both on 64 & 32 Bit Native Client Aliases.

Once I configured the one for the 32 bit driver, it worked.