So for the last couple of weeks many of our Certified Partners have been working on deploying AuthAnvil v2. We have had a few reports now of difficulties deploying the AuthAnvil database onto a SQL 2008 target from a Windows Server 2003 host, and with enough details from those installs we finally figured out what the problem is.
It stems from the wrong SQL client libraries being installed beforehand, which is causing a problem as they conflict with the database libraries we link to. It ends up if you have used Microsoft's default client libraries for SQL2005 and try to target a SQL2008 source, it simply would not work. The reason is the roll up to support SQL2008 actually exists in the SQL2008 SP2 roll out, which is NOT applied if you just install the SQL client tools.
The end result is you have a defunc SQL install. This causes the AuthAnvil Database Management tool to fail, with an error stating "This version of SQL Server (10.0) is not supported".
So how did we fix this? We have recompiled all our code to target Microsoft's latest (October) release of its SQL client librariers, which is version 10. These libraries ARE backwards compatible with SQL2005, so you will never be caught by this again. And in our installer, we do a pre-requisite check for the SQL client MSIs that we need. If they do not already exist on the system, our installer will alert you and exit.
So, even if you are targeting a SQL 2005 database, you will need to install the SQL 2008 redist packages. There is no harm in having both SQL 2005 and SQL 2008 client libraries on the system, as they can run side by side. In particular, you will need to install:
- Microsoft SQL Server System CLR Types
- Microsoft SQL Server 2008 Management Objects
- Microsoft SQL Server 2008 Native Client
And you should install it in that order. Now, if you forget to install the SQL 2008 Native Client, you will have a different issue. You will find a side-by-side DLL reference error where Microsoft.VC80.CRT is not the correct version on your server. This is because Microsoft compiled their latest stuff with a NEW set of DLLs that do NOT ship with the their standard MSIs, and is NOT available for general download. In other words, until you install the newer DLL (version 8.0.50727.1833) from the Native Client MSI... it simply won't work.
Many thanks to Travis Sheldon and Vlad Mazek from Own Web Now for working with us and being patient as we try to debug this on all the different operating systems and SQL databases. This is an ugly installation and configuration problem with SQL that we simply couldn't account for easily in our test environments. At least now we can stop you from getting confused if you install or use the wrong libraries!