2009-10-07 18 views
9

Kann mir jemand sagen, die effektive Differenz zwischen den folgenden Verbindungszeichenfolgen:Unterschied zwischen diesen Verbindungszeichenfolgen?

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

ich beide effektiv gleich glauben. Die Angabe von "Network Library = DBMSSOCN" verbindet explizit TCPIP und Prefixing Server-Wert mit TCP verbindet das gleiche.

Bitte teilen Sie mir mit, ob es einen Unterschied oder irgendeine Auswirkung auf die Leistung gibt, diese Einstellungen in web.config anzugeben.

Antwort

11

Der Unterschied zwischen den beiden Optionen ist:

das Protokoll angeben

entweder über,

Multi = rpc

Shared Memory = lpc

NWlink IPX/SPX = spx

Banyan VINES = Reben

Apple Talk = adsp

TCP = tcp

Dies ist die empfohlene Methode. Ich fühle mich auch sicherer, da DLL-Namen sich eher ändern als Protokollnamen.

Sie können die Portnummer auch ändern, anstatt sie mithilfe des SQL Server Client Network Utility auf der ganzen Linie zu konfigurieren.

Specyfying die Bibliothek ohne die dll Erweiterung

die Bibliothek angeben wird die gleichen Namen wie die eigentliche Netzwerk-DLL-Bibliothek-Datei ohne die DLL-Erweiterung verwenden.

Beispiel:

TCP/IP: C: \ WINDOWS \ system32 \ Dbmssocn.dll

Named Pipes: C: \ WINDOWS \ system32 \ Dbnmpntw.dll

Multi-Protokoll (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

Dies funktioniert am besten, wenn Sie Ihre eigene Netzwerk-Bibliothek schreiben möchten. Siehe SQL Server-Client-Netzwerkdienstprogramm.

Der Performance-Kompromiss ist minimal und nicht bemerkbar. Es ist am besten, sich an Standards zu halten und sie in der web.config zu konfigurieren, da andere Entwickler wissen, wo sie nach den Verbindungseinstellungen suchen müssen. Ähnlich wie eine Datenquellenverbindung in Java.

3

die Network Library= betreffs: direkt aus dem Microsoft source:

  • dbnmpntw - Win32 Named Pipes
  • dbmssocn - Win32 Winsock TCP/IP
  • dbmsspxn - Win32 SPX/IPX
  • dbmsvinn - Win32 Banyan Vines
  • dbmsrpcn - Win32 Multi-Protocol (Windows RPC)

SQL Server verwendet standardmäßig TCP/IP, so dass keine Notwendigkeit, es zu geben gibt. Ein ganzer Artikel zur Verbindungszeichenfolge kann here gefunden werden.

Verwandte Themen