2009-10-07 13 views
9

Qualcuno può dirmi la differenza effettiva tra le seguenti stringhe di connessione:Differenza tra queste stringhe di connessione?

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

Credo entrambi sono effettivamente la stessa. Specificando "Network Library = DBMSSOCN" si connette esplicitamente utilizzando TCPIP e il prefisso del valore del server con TCP fa la stessa cosa.

Per favore dimmi se ci sono differenze o implicazioni sul rendimento di specificare queste impostazioni in web.config.

risposta

11

La differenza tra le due opzioni è:

Specifica del protocollo

utilizzando uno,

Multiprotocol = rpc

Shared Memory = lpc

NWlink IPX/SPX = spx

Banyan Vines = viti

Apple Talk = ADSP

TCP = tcp

Questo è il modo consigliato. Mi sento anche più sicuro dato che i nomi delle DLL sono più propensi a cambiare rispetto ai nomi dei protocolli.

Consente inoltre di modificare il numero di porta, anziché configurarlo attraverso l'utilità di rete client di SQL Server.

Specyfying la Biblioteca senza il dll estensione

Specificare la libreria utilizzerà lo stesso nome del file di libreria DLL di rete attuale senza l'estensione .dll.

Esempio:

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

Questo funziona meglio quando si vuole scrivere la propria libreria di rete. Vedere l'utilità di rete del client SQL Server.

Il compromesso delle prestazioni è minuto e non evidente. È meglio attenersi agli standard e configurarli in web.config, poiché gli altri sviluppatori sapranno dove cercare le impostazioni delle connessioni. Simile ad avere una connessione sorgente dati in java.

3

Per quanto riguarda la Network Library=: direttamente dal 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 utilizza il protocollo TCP/IP di default quindi non c'è bisogno di specificarlo. Un intero articolo sulla stringa di connessione può essere trovato here.

Problemi correlati