我的想法已经用完了,所以检查是否有人可以阐明。
- 2层客户端-服务器应用程序
- SQL 服务器 2005
- 工作站:Windows XP
- 客户端-服务器应用程序 1 使用 SQL OLE DB 提供程序。(提供者=SQLOLEDB.1)
- 客户端-服务器应用程序 2 使用 SQL Native Client。(System.Data.SqlClient.SqlConnection)
不知何故,应用程序 1 运行良好,但应用程序 2 需要将连接超时设置为 30 秒才能使其正常工作。
使用我从 JohnnyCoder 的Database Connectivity Test with UDL File中学到的技巧,我发现问题出在驱动程序的某个地方。当我尝试 Microsoft OLE DB Provider for SQL Server 时,它会立即连接。当我尝试 SQL Native Client 时,它不需要很长时间。即使我将连接超时设置为 60,它也会失败。
这两个应用程序都可以在其他安装上运行良好,但在一个特定站点上却不行。所以它必须与一些环境设置有关,例如安全、防火墙等。
我尝试在工作站上安装新的 SQL Server 2005 Native Client。没运气。
所以我的问题是:
- 当客户端实际上无法连接时,为什么应用程序 2 会使其工作?当 SQL Native Client 超时发生时,是否有使用 OLE DB 的内部逻辑?
- 你还要看什么?