用于SQL Server的OLE DB提供程序可用,但不能用于SQL Native Client

时间:2013-03-28 19:08:49

标签: sql-server-native-client


我的想法已经不多了,所以要检查是否有人可以解决问题。

  • 2层客户端 - 服务器应用程序
  • SQL Server 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学到的一个提示,我追踪问题是在驱动程序周围的某个地方。当我为SQL Server尝试Microsoft OLE DB Provider时,它会立即连接。 当我尝试SQL Native Client时,它不需要很长时间。它失败即使我将连接超时设置为60。

这两个应用程序在其他安装上运行良好,但在一个特定站点上运行不正常。因此,它必须与某些环境设置相关,如安全性,防火墙等。

我尝试在工作站上安装新的SQL Server 2005 Native Client。没有运气。

所以我的问题是:

  1. 当客户端实际无法连接时,为什么应用程序2能够正常工作?当SQL Native Client超时发生时,是否存在使用OLE DB的内部逻辑?
  2. 你还能看一下什么?

1 个答案:

答案 0 :(得分:2)

答:他们的网络防火墙阻止了TCP / IP数据包。 结果,SQL Native Client在20秒后使用TCP / IP超时,然后尝试命名管道使其工作。