Okazało się, że był to problem z pozwoleniem.
Zmieniłem w php.ini opcję fastcgi.impersonate na 0 i próbowałem z różnymi tożsamościami puli aplikacji. Działał jako system lokalny. Jest to konto z większą liczbą praw użytkownika niż konto Usługa sieciowa lub Usługa lokalna. Należy jednak pamiętać, że uruchamianie puli aplikacji na koncie o zwiększonych prawach użytkownika stanowi duże zagrożenie bezpieczeństwa. Więcej informacji na temat kont i konfiguracji znajdziesz w tych artykułach:
Konfiguracja Tożsamość puli aplikacji z usługami IIS 6.0 (IIS 6.0) Konta użytkowników usługi Bezpieczeństwo usług i prawa dostępu
Postanowiłem ustawić go z powrotem na Network Service i pobrałem Process Monitor *. Następnie użyłem go do monitorowania procesu w3wp, który pokazał mi, że odmówiono dostępu do klucza rejestru, w którym przechowywana jest ścieżka do pliku sqlncli.dll.
HKLM\Software\ODBC\ODBCINST.INI\SQL Native Client 10.0
Więc otworzyłem RegEdit i znalazłem ten klucz
Kliknąłem prawym przyciskiem myszy -> Uprawnienia i dodałem usługę sieciową do listy i nadałem jej uprawnienia do odczytu.
Przetworzono pulę aplikacji i teraz działa!
Mam nadzieję, że to pomoże! Federico
*Jest tutaj bardzo dobry artykuł krok po kroku na temat korzystania z monitora procesów.
http://www.iislogs.com/articles/processmonitorw3wp/