PRB: Error "Unable to Load Communication Module" in ASP/ADO/SQL Server (306216)



The information in this article applies to:

  • ActiveX Data Objects (ADO) 2.0
  • ActiveX Data Objects (ADO) 2.1
  • ActiveX Data Objects (ADO) 2.1 SP1
  • ActiveX Data Objects (ADO) 2.1 SP2
  • ActiveX Data Objects (ADO) 2.5
  • ActiveX Data Objects (ADO) 2.6
  • ActiveX Data Objects (ADO) 2.7
  • Microsoft SQL Server 6.5
  • Microsoft SQL Server 7.0
  • Microsoft SQL Server 2000 (all editions)
  • Microsoft Active Server Pages
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Server 5.0

This article was previously published under Q306216

SYMPTOMS

When you use a universal data link (UDL) file or client-side code to test ADO/OLE DB connectivity to a SQL Server database, the test returns successful. However, if you try to use ADO from an ASP page to connect to the same SQL Server database, you receive the following error message:
Unable to load communication module. Driver has not been correctly installed.

CAUSE

This problem occurs because the Microsoft Windows NT 4.0 or Windows 2000 user account that is used to process the request for the ASP page does not have the NTFS permissions that are required to access the SQL Server client Network Library dynamic-link library (DLL), which is used to establish the database connection (for example, the SQL Server TCP/IP Network library is Dbmssocn.dll).

RESOLUTION

To resolve this problem, use the SQL Server Client Network Utility on the Internet Information Server (IIS) server to determine which Network Library is configured to connect to the target SQL Server. Make sure that you grant Read permission to the Windows NT 4.0 or Windows 2000 account that is used to process the request for the ASP page so that this account can access and load the corresponding Network Library DLL. The SQL Server Network Library DLLs are installed in the WINNT\SYSTEM32 folder.

STATUS

This behavior is by design.

MORE INFORMATION

To see a list of SQL Server Client Network Libraries that are installed on a computer, refer to the Network Libraries tab of the SQL Server Client Network Utility window. The list also includes the name of the corresponding DLLs and their location. These DLLs are installed in the WINNT\SYSTEM32 folder.

The authentication mechanism that the Web server uses to authenticate the user request determines which Windows NT 4.0 or Windows 2000 user account credentials to use in order to process a request for an IIS resource (for example, HTML pages and ASP pages). For example, when you use Anonymous authentication, the credentials of the configured IIS Anonymous account (which is the IUSR_WebServerName account by default) are used to process the user request. When you use Basic authentication, Internet Explorer prompts the user to supply a valid Windows NT 4.0 or Windows 2000 Network UserId and password, whose credentials are then used to process the request. Refer to the online IIS documentation for additional information about the supported authentication mechanisms and how they work.

REFERENCES

For additional information, click the article numbers below to view the articles in the Microsoft Knowledge Base:

238949 HOWTO: Set the SQL Server Network Library in an ADO Connection String

247931 INF: Authentication Methods for Connections to SQL Server in Active Server Pages

176377 INFO: Accessing SQL Server with Integrated Security from ASP


Modification Type:MinorLast Reviewed:7/13/2004
Keywords:kbprb KB306216