Al momento sei offline in attesa che la connessione Internet venga ristabilita

Come configurare SQL Server per l'ascolto su una porta specifica

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 823938
Sommario
In questo articolo viene descritto l'allocazione delle porte statiche e dinamiche in Microsoft SQL Server 2008, SQL Server 2005 o SQL Server 2000. Inoltre, viene illustrato come configurare un'istanza di SQL Server per utilizzare una porta statica o una porta dinamica.
Informazioni
Allocazione delle porte statiche
Se si configura un'istanza di SQL Server per utilizzare una porta statica e riavviare l'istanza di SQL Server, l'istanza di SQL Server è in ascolto solo sulla porta statica specificata. I client di SQL Server devono inviare tutte le richieste solo per la porta statica in cui l'istanza di SQL Server è in ascolto.

Tuttavia, se un'istanza di SQL Server è configurato per l'ascolto su una porta statica e un altro programma in esecuzione sul computer è già utilizzando la porta statica di SQL Server è avviato, SQL Server non è in ascolto sulla porta statica specificata.

Per impostazione predefinita, l'istanza predefinita di SQL Server è in ascolto delle richieste dai client di SQL Server sulla porta static 1433. Pertanto, le librerie di rete client presuppongono che la porta 1433 o la porta predefinita globale definito per il computer client viene utilizzata per la connessione all'istanza predefinita di SQL Server.

Se è un'istanza predefinita di SQL Server in ascolto su una porta diversa dalla porta 1433, è necessario effettuare una Consente di definire un nome di alias di server o modificare la porta predefinita globale utilizzando l'utilità Configurazione di rete Client. Tuttavia, è inoltre possibile rendere l'istanza predefinita di ascolto di SQL Server su più porte statiche.

Per ulteriori informazioni su come configurare SQL Server in ascolto su più porte TCP statiche, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
294453Come configurare SQL Server in ascolto su più porte TCP statiche
L'istanza predefinita di SQL Server non supporta l'allocazione dinamica delle porte. Tuttavia, le istanze denominate di SQL Server supportano l'allocazione delle porte statiche e dinamiche. Per impostazione predefinita, un'istanza denominata di SQL Server è in ascolto su una porta dinamica. Per un'istanza denominata di SQL Server, il servizio SQL Server Browser per SQL Server 2008, SQL Server 2005 o SQL Server risoluzione protocollo (SSRP) per SQL Server 2000 viene sempre utilizzato per tradurre il nome dell'istanza a una porta, indipendentemente dal fatto che la porta sia statico o dinamico. Il servizio Browser o SSRP non viene mai utilizzato per un'istanza predefinita di SQL Server.

Allocazione dinamica delle porte
Solo le istanze denominate di SQL Server possono utilizzare il processo di allocazione porta dinamica. Durante il processo di allocazione porta dinamica, quando si avvia l'istanza di SQL Server per la prima volta, la porta sia impostata su zero (0). Pertanto, SQL Server richiede una porta libera numero compreso tra il sistema operativo. Non appena viene allocato un numero di porta per SQL Server, SQL Server viene avviata l'attesa sulla porta allocata.

Il numero di porta allocato viene scritto nel Registro di sistema di Windows. Ogni volta che si avvia che istanza denominata di SQL Server, viene utilizzato tale numero di porta allocato. Tuttavia, nel caso improbabile che un altro programma che è già in esecuzione sul computer utilizza tale numero di porta allocato in precedenza (ma non statici) all'avvio di SQL Server, SQL Server consente di selezionare un'altra porta.

Quando si avvia le istanze denominate di SQL Server per la seconda volta, in SQL Server viene aperto il numero di porta di attesa è stato avviato la prima volta, come illustrato di seguito:
  • Se la porta viene aperta senza errori, SQL Server è in ascolto sulla porta.
  • Se non è possibile aprire la porta e si verificano errori, SQL Server si comporta come segue:
    • Viene visualizzato il seguente messaggio di errore:
      ID errore 10048 (WSAEADDRINUSE)
      Quando si riceve questo messaggio di errore, SQL Server determina che la porta è in uso. Quindi, il numero di porta viene impostato su zero (0) nuovamente. Di conseguenza, viene assegnata una porta disponibile. E di SQL Server rimane in attesa per la richiesta di connessione del client sulla porta.
    • Se viene visualizzato un messaggio di errore che non citare errore 10048, SQL Server 2000 determina che non è possibile attendere la richiesta di connessione sulla porta. Di conseguenza, la porta non è aperta.
Note
  • In SQL Server 2005, quando viene visualizzato il seguente messaggio di errore, il numero di porta viene impostato su zero (0) e viene aperto.
    ID errore 10013 (WSAEACCES)
  • In Windows Server 2003 o in Windows XP, è possibile che venga visualizzato il messaggio di 10013 errore anziché il messaggio di 10048 errore quando viene utilizzata esclusivamente la porta che sta tentando di aprire.
Quando un'istanza di SQL Server utilizza l'allocazione porta dinamica, la connessione stringa che viene compilata nel client di SQL Server non specifica il protocollo TCP/IP di destinazione la porta a meno che l'utente o il programmatore specifichi in modo esplicito la porta. Di conseguenza, la libreria client di SQL Server esegue una query al server sulla porta UDP 1434 per raccogliere le informazioni relative all'istanza di destinazione di SQL Server. Quando SQL Server restituisce le informazioni, invia la libreria client di SQL Server i dati per l'istanza appropriata di SQL Server.

Se la porta UDP 1434 è disattivata, il client di SQL Server non è in grado di determinare in modo dinamico la porta dell'istanza denominata di SQL Server. Di conseguenza, il client di SQL Server potrebbe essere Impossibile connettersi a un'istanza denominata di SQL Server. In questo caso, il client di SQL Server deve specificare porte allocate in modo dinamico in cui è in attesa l'istanza denominata di SQL Server 2008, SQL Server 2005 o SQL Server 2000.

Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
265808Come connettersi a SQL Server utilizzando una versione precedente di SQL Server


Verifica la configurazione della porta di un'istanza di SQL Server
Nota. Le istanze predefinite di SQL Server utilizzano sempre un valore static porta.

Verificare innanzitutto che l'istanza di SQL Server è il protocollo TCP/IP abilitato. Quindi esaminare il log degli errori di SQL Server per trovare la porta TCP/IP nell'istanza di SQL Server "in attesa su". Inoltre, in SQL Server 2005 e versioni successive, è possibile controllare le impostazioni in Gestione configurazione SQL Server. Se si desidera visualizzare il log degli errori SQL all'interno di un programma, attenersi alla seguente procedura.

Nota. Per SQL Server 2000, utilizzare Query analyzer per eseguire la query riportata di seguito.
  1. Avviare SQL Server Management Studio e connettersi all'istanza di SQL Server.
  2. Eseguire la query seguente:
    Use master Go Xp_readerrorlog
  3. Nel Risultati riquadro, individuare il testo riportato di seguito (dove X.X.X. Xè l'indirizzo IP dell'istanza di SQL Server eY è la porta TCP/IP in cui è in ascolto di SQL Server):
    Server SQL in ascolto su X.X.X. X: Y
    Nota. Ad esempio, se si individua il "server SQL in ascolto su 10.150.158.246: 1433" text nel Risultati riquadro, 10.150.158.246 è che l'indirizzo IP di SQL Server e 1433 è la porta TCP/IP in cui è in attesa l'istanza di SQL Server.
Per verificare la configurazione della porta di un istanza di SQL Server, attenersi alla seguente procedura:
  1. Avviare l'Editor del Registro di sistema.
  2. Nell'Editor del Registro di sistema individuare la seguente chiave del Registro di sistema:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\MSSQLServer\SuperSocketNetLib\Tcp</InstanceName>
    Nota. Se si utilizza SQL Server 2005, individuare la seguente sottochiave del Registro di sistema:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<MSSQL.x>\MSSQLServer\SuperSocketNetLib\Tcp\IPAll</MSSQL.x>
    Si noti il valore di TCPDynamicPorts e il valore di TCPPort. Questi valori vengono visualizzati come indicato di seguito, a seconda del metodo di allocazione porta:
    • Allocazione delle porte statiche
      Se si configura un'istanza di SQL Server per utilizzare un porta statica e si dispone non ancora riavviato l'istanza di SQL Server, il i valori del Registro di sistema sono impostati come segue:
      TCPDynamicPorts = Ultima porta che viene utilizzato
      TCPPort = Nuova porta statica da utilizzare dopo il successivo riavvio; nuova porta statica impostare utilizzando l'utilità Configurazione di rete Server
      Tuttavia, se si configura un'istanza di SQL Server per utilizzare un porta statica e si riavvia l'istanza di SQL Server, i valori del Registro di sistema vengono impostati come la seguente:
      TCPDynamicPorts = Vuoto
      TCPPort = Nuova porta statica impostare utilizzando l'utilità Configurazione di rete Server
    • Allocazione dinamica delle porte
      Se si configura un'istanza di SQL Server da utilizzare allocazione dinamica delle porte e si dispone non ancora riavviato l'istanza di SQL Server, i valori del Registro di sistema sono impostati come segue:
      TCPDynamicPorts = Vuoto
      TCPPort = 0
      Tuttavia, se si configura un'istanza di SQL Server per utilizzare l'allocazione dinamica delle porte e si riavvia l'istanza di SQL Server, i valori del Registro di sistema sono impostati come segue:
      TCPDynamicPorts = Porta corrente utilizzata
      TCPPort = Porta corrente utilizzata


Configurazione di un'istanza di SQL Server per utilizzare una porta statica

SQL Server 2008 e SQL Server 2005

Per configurare un'istanza di SQL Server 2008 o SQL Server 2005 per utilizzare una porta statica, attenersi alla procedura descritta nei How to: configurare un Server per l'attesa su una porta di TCP specifica (Gestione configurazione di SQL Server) argomento nella documentazione in linea di SQL Server 2005 o nella documentazione in linea di SQL Server 2008.

Per configurare una porta statica per specializzato dedicato amministratore connessione (DAC), è necessario aggiornare la chiave del Registro di sistema che corrisponde all'istanza di. Ad esempio, la chiave del Registro di sistema potrebbe essere il seguente:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.X\MSSQLServer\SuperSocketNetLib\AdminConnection\Tcp
Nota. La "X" in "MSSQL.X"è un numero che indica la directory in cui è installata l'istanza di SQL Server 2005 o il nome dell'istanza di SQL Server 2008.

SQL Server 2000

Per configurare un'istanza di SQL Server per utilizzare una porta statica, attenersi alla seguente procedura:
  1. Avviare l'utilità di rete Server. A tale scopo, eseguire una delle operazioni seguenti:
    • Fare clic Inizio, scegliereProgrammi, scegliere Microsoft SQL Server, e quindi fare clic su Utilità configurazione di rete del server.
    • Fare clic Inizio, quindi fare clic su Eseguire. Nel Apri casella, digitare svrnetcn.exee quindi Fare clic su OK.
    Il Server Utilità di rete verrà visualizzata la finestra di dialogo.
  2. Nel Server Utilità di rete Nella finestra di dialogo, scegliere il Generale scheda.
  3. NelIstanze nel server Selezionare l'istanza di SQL Server.

    Nota. Se il protocollo TCP/IP è disabilitato, abilitarlo. A tale scopo, fare clic su TCP/IP nel Disabilitato Protocolli elencare e quindi fare clic su Attiva.
  4. Nel Abilitato Protocolli Fare clic su TCP/IP, quindi fare clic suProprietà.
  5. Nel Porta predefinita Digitare un numero di porta statica e quindi fare clic su OK.

    Nota. La porta statica specificata deve essere diverso dal assegnazione dinamica delle porte che è in attesa l'istanza di SQL Server. Per Nell'esempio, se un'istanza di SQL Server è attualmente in ascolto su TCP/IP dinamico porta 1400, tipo 1500 per la nuova porta statica.
  6. Fare clic OK due volte.
  7. Riavviare l'istanza di SQL Server.
  8. Consente di visualizzare i log degli errori di SQL Server per verificare che l'istanza di SQL Server utilizzi la porta statica.

    Nota. Se si dispone di un'istanza cluster di SQL Server e si seguono passaggi specificati in un nodo del cluster, è possibile notare che i valori del Registro di sistema TCPDynamicPorts e i valori del Registro di sistema TCPPort su altri nodi del cluster contengono ancora i vecchi valori. Quando spostare il gruppo di SQL Server per il nodo di cluster corrispondente e quindi portare SQL Server in linea sul nodo del cluster, i valori del Registro di sistema sui nodi del cluster rifletterà i valori corretti.
È possibile che si desideri impostare la porta statica dell'istanza di SQL Server per lo stesso numero di porta come porta dinamico utilizzato in precedenza. Per effettuare questa operazione, attenersi alla seguente Procedura:
  1. Consente di visualizzare il valore del Registro di sistema TCPDynamicPorts e il valore del Registro di sistema TCPPort per determinare il numero di porta dinamica utilizzata l'istanza precedente di SQL Server.
  2. Nella configurazione di rete di Server, impostare la porta statica una numero di porta diverso rispetto al valore del Registro di sistema è determinato al passaggio 1.
  3. Riavviare l'istanza di SQL Server.
  4. Nella configurazione di rete di Server, impostare la porta statica il valore del Registro di sistema che è determinato al passaggio 1.
  5. Riavviare l'istanza di SQL Server.


Configurazione di un'istanza di SQL Server per utilizzare una porta dinamica

SQL Server 2008 e SQL Server 2005

Per configurare l'istanza di SQL Server 2008 o nell'istanza di SQL Server 2005 per utilizzare una porta dinamica, utilizzare il metodo simile descritto nel "How to: configurare un Server per l'attesa su una porta di TCP specifica (Gestione configurazione di SQL Server)" argomento nella documentazione in linea di SQL Server 2008 o nella documentazione in linea di SQL Server 2005. Per ulteriori informazioni, vedere l'argomento relativo alla Configurazione di rete Server nella documentazione in linea di SQL Server 2008 o nella documentazione in linea di SQL Server 2005.

SQL Server 2000

Per configurare l'istanza di SQL Server per utilizzare una porta dinamica, attenersi alla seguente procedura:
  1. Avviare l'utilità di rete Server. A tale scopo, eseguire una delle operazioni seguenti:
    • Fare clic Inizio, scegliereProgrammi, scegliere Microsoft SQL Server, e quindi fare clic su Utilità configurazione di rete del server.
    • Fare clic Inizio, quindi fare clic su Eseguire. Nel Apri casella, digitare svrnetcn.exee quindi Fare clic su OK.
    Il Server Utilità di rete verrà visualizzata la finestra di dialogo.
  2. Nel Server Utilità di rete Nella finestra di dialogo, scegliere il Generale scheda.
  3. NelIstanze nel server Selezionare l'istanza di SQL Server.

    Nota. Se il protocollo TCP/IP è disabilitato, abilitarlo. A tale scopo, fare clic su TCP/IP nel Disabilitato Protocolli elencare e quindi fare clic su Attiva.
  4. Nel Abilitato Protocolli Fare clic su TCP/IP, quindi fare clic suProprietà.
  5. Nel Porta predefinita casella, digitare0, quindi fare clic su OK.
  6. Fare clic OK, quindi fare clic suOK nuovamente.
  7. Riavviare l'istanza di SQL Server.
  8. Consente di visualizzare i log degli errori di SQL Server per verificare che l'istanza di SQL Server utilizzi la porta dinamica.

    Nota. Se si dispone di un'istanza cluster di SQL Server e si seguono passaggi specificati in un nodo del cluster, è possibile notare che i valori del Registro di sistema TCPDynamicPorts e i valori del Registro di sistema TCPPort su altri nodi del cluster contengono ancora i vecchi valori. Quando spostare il gruppo di SQL Server per il nodo di cluster corrispondente e quindi portare SQL Server in linea sul nodo del cluster, i valori del Registro di sistema sui nodi del cluster rifletterà i valori corretti.


Risoluzione dei problemi
Se i client di SQL Server non possono accedere a un'istanza di SQL Server dopo aver configurato per utilizzare un porta TCP/IP statico, potrebbe essere disponibili le seguenti cause:
  • A firewall stia bloccando la porta TCP/IP specificata.
    Se la porta è in attesa l'istanza di SQL Server è bloccata dal firewall, le connessioni avranno esito negativo. Per informazioni su come configurare il firewall per l'utilizzo con il SQL Server, vedere l'argomento configurazione di Windows Firewall per consentire l'accesso di SQL Server nella documentazione in linea di SQL Server 2008. Ma questo argomento è specifico di SQL Server 2008, la maggior parte delle informazioni sono valide per SQL Server 2005 e SQL Server 2000.

    Per ulteriori informazioni, fare clic sui numeri degli articolo riportato di seguito per visualizzare gli articoli della Microsoft Knowledge Base riportato di seguito:
    287932Numeri di porta TCP/IP necessari per comunicare a SQL attraverso un firewall
    318432 Errore: Impossibile connettersi a un'istanza denominata cluster attraverso un firewall
    968872 Come aprire la porta del firewall per SQL Server su Windows Server 2008
  • Un altro programma stia già utilizzando la porta TCP/IP specificata.
    Se un altro programma sta già utilizzando la porta TCP/IP, la porta non è disponibile per l'istanza di SQL Server e SQL Server client non riescano a connettersi all'istanza di SQL Server.

    In questo problema è specifico di un'istanza di SQL Server è configurato per l'utilizzo di un porta TCP/IP statico. Questo problema si verifica per un'istanza di SQL Server che è configurato per utilizzare l'allocazione dinamica delle porte. In Allocazione porta dinamica, se un altro programma è già utilizzata la porta TCP/IP specificata quando si avvia l'istanza di SQL L'istanza di SQL Server Server consente di selezionare una nuova porta.

    Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
    293107I client non possono comunicare a SQL Server tramite la porta 1433 o di SQL Server è in ascolto sulla porta
  • Un'istanza denominata di SQL Server è in ascolto sulla porta 1433.
    Se un'istanza denominata di SQL Server è in ascolto sulla porta 1433, il Provider Microsoft OLE DB per SQL Server (Provider = SQLOLEDB) e il Driver ODBC di SQL Server (Driver = {SQL Server}) potrebbe essere Impossibile connettersi al server. Questo errore durante la connessione si verifica quando vengono omessi il nome dell'istanza e il numero di porta dalla stringa di connessione. Se viene specificato alcun numero di porta, il driver di convalidare il nome di istanza del server. Se il nome di istanza del server non è l'istanza predefinita, MSSQLSERVER, la connessione ha esito negativo. Per attivare una connessione, è necessario specificare il nome di istanza o il numero di porta nella stringa di connessione o in un Alias di SQL.

    Note
    • Non è consigliabile disporre un'istanza denominata di attesa sulla porta 1433.
    • Altri provider, ad esempio System.Data.SqlClient e SQL Native Client (Provider = SQLNCLI), non eseguire la verifica del nome di istanza e connettersi correttamente.
Riferimenti
Per ulteriori informazioni, fare clic sui numeri degli articolo riportato di seguito per visualizzare gli articoli della Microsoft Knowledge Base riportato di seguito:
286303Comportamento della libreria di rete di SQL Server 2000 durante il rilevamento delle porte dinamiche
273673 Descrizione delle connessioni client di SQL Server virtuale
328383 I client di SQL Server vengano modificati i protocolli quando i computer client tentano di connettersi a un'istanza di SQL Server
Per ulteriori informazioni sulla configurazione di SQL Server per l'ascolto su porte diverse su diversi indirizzi IP, vedere la come configurare SQL server per l'ascolto su porte diverse in indirizzi IP diversi? argomento sul sito Web del Blog di supporto di Microsoft SQL Server seguenti:

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 823938 - Ultima revisione: 07/16/2013 01:40:00 - Revisione: 8.1

Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Workgroup

  • kbsqlsetup kbsql2005cluster kbconnectivity kbupdate kbsqlclient kbnetwork kbfirewall kbconfig kbregistry kbhowtomaster kbmt KB823938 KbMtit
Feedback
html>mp;t=">