If the error message specifies a particular instance, rather than 'null', the instance specified has not been properly configured to be recognized as a Distributor.
If the message specifies 'null' as a Distributor, there is no entry for the local server in master database, or the entry is incorrect (perhaps because the computer was renamed). Replication expects all servers in a topology to be registered using the computer name with an optional instance name (in the case of a clustered instance, the SQL Server virtual server name with the optional instance name). For replication to function properly, the value returned by SELECT @@SERVERNAME for each server in the topology should match the computer name or virtual server name with the optional instance name.
Replication is not supported if you have registered any of the SQL Server instances by IP address or by Fully Qualified Domain Name (FQDN). If you had any of the SQL Server instances registered by IP address or by FQDN in SQL Server Management Studio when you configured replication, this error could be raised.
If the error message specifies a particular instance, configure the server as a Distributor. For more information, see Configure Distribution.
If the message does not specify a particular instance ('null'), verify that the Distributor instance is registered properly. If the network name of the computer and the name of the SQL Server instance differ, either:
Add the SQL Server instance name as a valid network name. One method to set an alternative network name is to add it to the local hosts file. The local hosts file is located by default at WINDOWS\system32\drivers\etc or WINNT\system32\drivers\etc. For more information, see the Windows documentation.
For example, if the computer name is comp1 and the computer has an IP address of 10.193.17.129, and the instance name is inst1/instname, add the following entry to the hosts file:
Disable distribution, register the instance, and then reestablish distribution. If the value of @@SERVERNAME is not correct for a non-clustered instance, follow these steps:
sp_dropserver '<old_name>', 'droplogins' go sp_addserver '<new_name>', 'local' go
After you execute the sp_addserver (Transact-SQL) stored procedure, you must restart the SQL Server service for the change to @@SERVERNAME to take effect.
If the value of @@SERVERNAME is not correct for a clustered instance, you must change the name using Cluster Administrator. For more information, see AlwaysOn Failover Cluster Instances (SQL Server).