Development Environment – Server cannot be found

“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.

devenv_servernotfound

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:

sqlnc_empty

Comparing it to configuration on my machine:

sqlnc_ok

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:

\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSSQLServer\Client\SNI11.0

This is how it looked like on end-user server:

sqlnc_reg_empty

This is how it looks like on my machine:

sqlnc_reg_ok

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!

Conclusion

As the saying goes, the only easy day was yesterday. 🙂

 

Leave a Reply