“Server cannot be found” error always reminds me that I forgot to enable Tcp protocol on SQL Server or to open the firewall ports. However, I had a fringe case a couple of moths ago, where none of the generic solutions helped…
Task: install NAV 2017 CU6 HU and SQL Server 2014 on Windows Server 2012 R2.
Windows server had been provided by end-user IT. SQL and NAV installation went well as usual, Windows/Web Clients were working just fine. Now, let’s head to development environment to upload customer license so my work here could be done.
What seemed to be a routine task had slowly started turning into a nightmare. DEV client welcomed me with an unusual hostility when opening database.
Why is this happening? I have just opened SQL Management Studio, RTC and Web Client, it’s localhost, so now what?
Let’s check SQL, NAV configurations:
- SQL Server Network configuration is OK
- Port 1433 is enabled everywhere, telnet check works
- It’s localhost but turned off the firewall just to be sure 😀
- SQL Management Studio is OK
- Client side of NAV infrastructure is OK
- Try repairing SQL installation
- Try repairing NAV installation
None of this helped, so I got stuck. Searching on Mibuso/Dynamics Community forums did not give anything new. It all looked like I was going to be a sole pioneer in this adventure.
I’m not afraid
As I was thinking on possible causes, I had found a new suspect: SQL Server Native Client. Since Microsoft took over Navision, it relies more and more on its in-house components, so it was plausible to assume that DEV client may use SQL Native Client for direct SQL access.
Checking out SQL Native Client 11.0 Configuration on end-user server:
Comparing it to configuration on my machine:
There are no client protocols! I have never seen such a thing before. Well, googling to “SQL Server Native Client Protocols empty” and its combinations did not provide me with anything useful either.
I’ll save you some time: reinstalling, uninstalling/installing Native Client won’t help.
Solution: may the Registry be with you!
Since I could not find documentation on how to add missing Client Protocols, it was time to dive into Registry and reverse-engineer my way back.
Registry path for SQL Server Native Client settings:
This is how it looked like on end-user server:
This is how it looks like on my machine:
Please observe the “slight” differences of folder structure in both pictures. After copying registry settings from my PC to end-user server, Client protocols magically appeared in SQL Server Configuration and DEV client began working!
As the saying goes, the only easy day was yesterday. 🙂