Condividi tramite


Attivazione di un ripetitore

Per attivare la connessione repeater, in genere si avvia il server, quindi si avvia il ripetitore, quindi si avvia il client.

È anche possibile avviare prima il ripetitore e quindi il server. Tuttavia, a meno che non si usi il parametro clicon per stabilire una connessione inversa, il client deve sempre essere avviato per ultimo.

Importante

Quando si usa il debug remoto, è necessario tenere presenti importanti considerazioni sulla sicurezza. Per altre informazioni, incluse le informazioni sull'abilitazione della modalità protetta, vedere Security During Remote Debugging and Security Considerations for Windows Debugging Tools.

Passaggio 1: Avvio del server

Il server può essere un server di debug, un server di elaborazione o un server di connessione KD. Si inizia come normalmente, ad eccezione del fatto che le impostazioni del protocollo di trasporto verranno usate per connettersi al ripetitore, non al client. Per informazioni dettagliate, vedere Attivazione di un server di debug, Attivazione di un server di elaborazioneo Attivazione di un server di connessione KD.

Se si usa una password durante la creazione del server, questa password sarà necessaria quando il client si connette, ma non quando viene creato il ripetitore.

Se si usa il parametro nascosto, il server verrà nascosto come di consueto. Il ripetitore stesso è sempre nascosto.

Passaggio 2: Avvio del ripetitore

Il ripetitore incluso in Strumenti di debug per Windows è denominato DbEngPrx (dbengprx.exe).

DbEngPrx comprende i protocolli di trasporto seguenti: named pipe (NPIPE), TCP e porta COM.

Se il client e il server usano il protocollo SSL (Secure Sockets Layer), è consigliabile usare il protocollo TCP per il ripetitore. Se il client e il server usano il protocollo SPIPE (Secure Pipe), è consigliabile usare il protocollo NPIPE per il ripetitore. Il ripetitore passerà i dati ricevuti, non interpreta, crittografa o decrittografa alcuna informazione. Tutta la crittografia e la decrittografia verranno eseguite dal client e dal server.

La sintassi per la riga di comando DbEnPrx è la seguente:

dbengprx [-p] -cClientTransport-sServerTransport

I parametri nei comandi precedenti hanno i valori possibili seguenti:

-p
Fa sì che DbEngPrx continui ad essere esistente anche dopo l'eliminazione di tutte le connessioni.

ClientTransport
Specifica le impostazioni del protocollo da utilizzare per la connessione al server. Il protocollo deve corrispondere a quello utilizzato al momento della creazione del server. Le sintassi del protocollo sono le seguenti:

npipe:server=Server,pipe=PipeName[,password=Password] 
tcp:server=Server,port=Socket[,password=Password][,ipversion=6] 
tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] 
com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] 

I parametri del protocollo hanno i significati seguenti:

server
Si tratta del nome di rete o dell'indirizzo IP del computer in cui è stato creato il server. Le due barre rovesciata iniziali (\) sono facoltative.

pipe=PipeName
Se viene usato il protocollo NPIPE o SPIPE, PipeName è il nome assegnato alla pipe al momento della creazione del server.

port=Socket
Se viene usato il protocollo TCP o SSL, Socket corrisponde allo stesso numero di porta socket utilizzato al momento della creazione del server.

clicon
Specifica che il server tenterà di connettersi al ripetitore tramite una connessione inversa. clientTransport deve usare clicon se e solo se il server usa clicon. Nella maggior parte dei casi, il ripetitore viene avviato prima del server quando viene utilizzata una connessione inversa.

port= COMPort
Se viene utilizzato il protocollo COM, COMPort specifica la porta COM da utilizzare. Il prefisso "COM" è facoltativo, ad esempio "com2" e "2" sono accettabili.

baud=BaudRate
Se viene usato il protocollo COM, BaudRate deve corrispondere alla velocità in baud scelta al momento della creazione del server.

channel= COMChannel
Se viene usato il protocollo COM, COMChannel deve corrispondere al numero di canale scelto al momento della creazione del server.

password=password
Se è stata usata una password al momento della creazione del server, è necessario specificare password per creare il client di debug. Deve corrispondere alla password originale. Le password fanno distinzione tra maiuscole e minuscole. Se viene specificata la password errata, il messaggio di errore specifica "Errore 0x80004005".

ipversion=6
(Solo strumenti di debug per Windows 6.6.07 e versioni precedenti) Forza il debugger a usare IP versione 6 anziché la versione 4 quando si usa TCP per connettersi a Internet. In Windows Vista e versioni successive il debugger tenta di impostare automaticamente l'impostazione predefinita su IP versione 6, rendendo questa opzione non necessaria.

ServerTransport
Specifica le impostazioni del protocollo che verranno utilizzate quando il client si connette al ripetitore. Le possibili sintassi dei protocolli sono:

npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] 
tcp:port=Socket[,hidden][,password=Password][,IcfEnable] 
tcp:port=Socket,clicon=Client[,password=Password] 
com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] 

I parametri del protocollo hanno i significati seguenti:

pipe=PipeName
Quando si usa il protocollo NPIPE o SPIPE, PipeName è una stringa che fungerà da nome della pipe. Ogni nome della pipe deve identificare un ripetitore univoco. Se si tenta di riutilizzare un nome di pipe, verrà visualizzato un messaggio di errore. PipeName non deve contenere spazi o virgolette. PipeName può includere un codice di formato printf-style, ad esempio %x o %d. Il repeater sostituirà questo valore con l'ID processo di DbEngPrx. Un secondo codice di questo tipo verrà sostituito con l'ID thread di DbEngPrx.

port=Socket
Quando si usa il protocollo TCP o SSL, Socket è il numero di porta socket.

È anche possibile specificare un intervallo di porte separate da due punti. DbEngPrx verificherà ogni porta in questo intervallo per verificare se è gratuita. Se trova una porta libera e non si verifica alcun errore, verrà creato il ripetitore. Il client dovrà specificare la porta effettiva utilizzata per connettersi al repeater. Per determinare la porta effettiva, cercare il ripetitore; quando viene visualizzato questo ripetitore, la porta sarà seguita da due numeri separati da due punti. Il primo numero sarà la porta effettiva usata; il secondo può essere ignorato. Ad esempio, se la porta è stata specificata come port=51:60e la porta 53 è stata effettivamente usata, i risultati della ricerca visualizzeranno "port=53:60". Se si usa il parametro clicon per stabilire una connessione inversa, il client può specificare un intervallo di porte in questo modo, mentre il ripetitore deve specificare la porta effettiva usata.

clicon=Client
Quando viene usato il protocollo TCP o SSL e viene specificato il parametro clicon , verrà aperta una connessione inversa. Ciò significa che il ripetitore tenterà di connettersi al client, invece di consentire al client di avviare il contatto. Ciò può essere utile se si dispone di un firewall che impedisce una connessione nella direzione consueta. client specifica il nome di rete o l'indirizzo IP del computer in cui è presente o verrà creato il client. Le due barre rovesciata iniziali (\) sono facoltative.

Poiché il repeater cerca un client specifico, non è possibile connettere più client al ripetitore se si usa questo metodo. Se la connessione viene rifiutata o interrotta, sarà necessario riavviare il ripetitore.

Quando si usa clicon, è consigliabile avviare il client prima della creazione del ripetitore, anche se è consentito anche l'ordine consueto (ripetitore prima del client).

port= COMPort
Quando si usa il protocollo COM, COMPort specifica la porta COM da utilizzare. Il prefisso "COM" è facoltativo, ad esempio "com2" e "2" sono accettabili. Non è possibile utilizzare la stessa porta COM nella clienttransport e nella ServerTransport.

baud=BaudRate
Quando si usa il protocollo COM, BaudRate specifica la velocità baud con cui verrà eseguita la connessione. Qualsiasi velocità baud supportata dall'hardware è consentita. Se si usa il protocollo COM sia nel ClientTransport che nel ServerTransport è possibile specificare velocità baud diverse, ma naturalmente la velocità più lenta sarà il limite per quanto il client e il server possono comunicare tra loro.

channel= COMChannel
Se viene usato il protocollo COM, COMChannel specifica il canale COM da usare per comunicare con il client. Può essere qualsiasi valore compreso tra 0 e 254 inclusi. È possibile usare una singola porta COM per più connessioni usando numeri di canale diversi. Questo comportamento è diverso dall'uso di porte COM per un cavo di debug, in questa situazione non è possibile usare canali all'interno di una porta COM.

nascosti
Impedisce la visualizzazione del server quando un altro debugger visualizza tutti i server attivi.

password=password
Richiede a un client di specificare la password specificata per connettersi alla sessione di debug. password può essere qualsiasi stringa alfanumerica.

IcfEnable
Fa sì che il debugger abiliti le connessioni di porta necessarie per la comunicazione TCP o named pipe quando il firewall di connessione Internet è attivo. Per impostazione predefinita, il firewall di connessione Internet disabilita le porte usate da questi protocolli. Quando IcfEnable viene usato con una connessione TCP, il debugger fa sì che Windows apra la porta specificata dal parametro Socket . Quando IcfEnable viene usato con una connessione named pipe, il debugger fa sì che Windows apra le porte usate per le named pipe (porte 139 e 445). Il debugger non chiude queste porte al termine della connessione.

Passaggio 3: Avvio del client

Il client deve essere un client di debug o un client intelligente, a seconda del tipo di server. Per informazioni dettagliate, vedere Attivazione di un client di debug, Attivazione di un client intelligenteo Attivazione di un client intelligente (modalità kernel).

Se il server rifiuta la connessione , ad esempio se si specifica una password errata, il repeater e il client verranno arrestati. Sarà necessario riavviarli entrambi per ristabilire il contatto con il server.