这些连接字符串有什么区别?

10

请问有人能告诉我以下连接字符串之间的有效差异:

<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;">

我认为这两者实际上是相同的。显式指定 "Network Library=DBMSSOCN" 将使用 TCPIP 进行连接,而在服务器值前缀中加上 TCP 也会产生相同的效果。

请告诉我在 web.config 中指定这些设置是否有任何区别或性能影响。

3个回答

12
两种选项的区别是: 指定协议 通过使用以下任一选项:
Multiprotocol = rpc
Shared Memory = lpc
NWlink IPX/SPX = spx
Banyan VINES = vines
Apple Talk = adsp TCP = tcp 这是推荐的方法。我认为这样更安全,因为DLL名称更有可能发生变化。
它还允许您更改端口号,而不是通过使用SQL Server客户端网络实用程序在整个系统中配置它。 指定没有dll扩展名的库 指定库将使用与实际网络DLL库文件相同的名称,但没有.dll扩展名。
例如:
TCP/IP: C:\WINDOWS\system32\DBMSSOCN.dll
Named Pipes: C:\WINDOWS\system32\DBNMPNTW.dll
Multiprotocol (RPC): C:\WINDOWS\system32\DBMSRPCN.dll
NWLink IPX/SPX: C:\WINDOWS\system32\DBMSSPXN.dll
AppleTalk: C:\WINDOWS\system32\DBMSADSN.dll
Banyan VINES: C:\WINDOWS\system32\DBMSVINN.dll
当您想编写自己的网络库时,这将是最佳选择。请参阅SQL Server Client Network Utility。
性能折衷微小且不明显。最好遵循标准,并将其配置在web.config中,因为其他开发人员将知道在哪里查找连接设置。类似于在java中具有数据源连接。

4

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接