谁能告诉我以下连接字符串之间的有效区别:
<add key="ConnectionString" value="server=tcp:192.168.0.12\Sqlserver2005;database=;user id=sa;password=;">
<add key="ConnectionString" value="server=192.168.0.12\Sqlserver2005;database=;user id=sa;password=;Network Library=DBMSSOCN;">
我相信两者实际上是相同的。指定“网络库= DBMSSOCN”使用TCPIP进行显式连接,并为服务器值加上TCP前缀就可以做到这一点。
请告诉我在web.config中指定这些设置是否有任何区别或对性能的影响。
最佳答案
两种选择之间的区别是:
指定协议(protocol)
通过使用任一
多协议(protocol)= rpc
共享内存= lpc
NWlink IPX/SPX = spx
榕树藤=葡萄藤
Apple Talk = adsp
TCP = TCP
这是推荐的方法。我也觉得它更安全,因为DLL名称比协议(protocol)名称更容易更改。
它还允许您更改端口号,而不是通过使用SQL Server客户端网络实用程序全面配置它。
监视没有dll扩展名的库
指定该库将使用与不带.dll扩展名的实际网络DLL库文件相同的名称。
例子:
TCP/IP:C:\WINDOWS\system32\DBMSSOCN.dll
命名管道:C:\WINDOWS\system32\DBNMPNTW.dll
多协议(protocol)(RPC):C:\WINDOWS\system32\DBMSRPCN.dll
NWLink IPX/SPX:C:\WINDOWS\system32\DBMSSPXN.dll
AppleTalk:C:\WINDOWS\system32\DBMSADSN.dll
榕树VINES:C:\WINDOWS\system32\DBMSVINN.dll
当您要编写自己的网络库时,这将是最好的方法。
请参阅SQL Server客户端网络实用程序。
性能的折衷是微小的,并不引人注目。最好遵循标准并在web.config中对其进行配置,因为其他开发人员将知道在哪里查找连接设置。类似于在Java中建立数据源连接。