Ativando um repetidor
Para ativar a conexão repetidora, você geralmente iniciará primeiro o servidor, em seguida, iniciar o repetidor e, em seguida, iniciar o cliente.
Também é possível iniciar o repetidor primeiro e, em seguida, o servidor. Mas a menos que você esteja usando o clicon parâmetro para estabelecer uma conexão reversa, o cliente deve sempre ser iniciado por último.
Importante
Há considerações de segurança importantes ao usar a depuração remota. Para obter mais informações, incluindo informações sobre como habilitar o modo seguro, consulte Segurança durante a depuração remota e Considerações de segurança para ferramentas de depuração do Windows.
Etapa um: Iniciando o servidor
O servidor pode ser um servidor de depuração, um servidor de processo ou um servidor de conexão KD. Você inicia isso como faria normalmente, exceto que as configurações do protocolo de transporte serão usadas para se conectar ao repetidor, não ao cliente. Para obter detalhes, consulte Ativando um servidor de depuração, Ativando umdo Process Server ou Ativando um servidor de conexão KD.
Se você usar uma senha ao criar o servidor, essa senha será necessária quando o cliente for anexado, mas não quando o repetidor for criado.
Se você usar o parâmetro hidden, o servidor ficará oculto como de costume. O repetidor em si está sempre escondido.
Passo Dois: Iniciando o Repetidor
O repetidor incluído nas Ferramentas de Depuração para Windows é chamado DbEngPrx (dbengprx.exe).
DbEngPrx compreende os seguintes protocolos de transporte: pipe nomeado (NPIPE), TCP e porta COM.
Se o cliente e o servidor estiverem usando o protocolo SSL (Secure Sockets Layer), você deverá usar o protocolo TCP para o repetidor. Se o cliente e o servidor estiverem usando o protocolo de pipe seguro (SPIPE), você deve usar o protocolo NPIPE para o repetidor. O repetidor transmitirá quaisquer dados que receber - ele não interpreta, criptografa ou descriptografa qualquer informação. Toda a encriptação e desencriptação será feita pelo cliente e pelo servidor.
A sintaxe para a linha de comando DbEnPrx é a seguinte:
dbengprx [-p] -cClientTransport-sServerTransport
Os parâmetros nos comandos anteriores têm os seguintes valores possíveis:
-p
Faz com que o DbEngPrx continue existindo mesmo depois que todas as conexões com ele forem descartadas.
ClientTransport
Especifica as configurações de protocolo a serem usadas na conexão com o servidor. O protocolo deve corresponder ao usado quando o servidor foi criado. As sintaxes do protocolo são as seguintes:
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]
Os parâmetros do protocolo têm os seguintes significados:
Server
Este é o nome da rede ou endereço IP do computador no qual o servidor foi criado. As duas barras invertidas iniciais (\) são opcionais.
pipe=PipeName
Se o protocolo NPIPE ou SPIPE for usado, PipeName é o nome que foi dado ao pipe quando o servidor foi criado.
port=Socket
Se o protocolo TCP ou SSL for usado, de soquete será o mesmo número de porta de soquete que foi usado quando o servidor foi criado.
clicon
Especifica que o servidor tentará se conectar ao repetidor por meio de uma conexão reversa.
ClientTransport deve usar clicon se e somente se o servidor estiver usando clicon. Na maioria dos casos, o repetidor é iniciado antes do servidor quando uma conexão reversa é usada.
port=COMPort
Se o protocolo COM for usado, COMPort especifica a porta COM a ser usada. O prefixo "COM" é opcional -- por exemplo, "com2" e "2" são aceitáveis.
baud=BaudRate
Se o protocolo COM for usado, BaudRate deverá corresponder à taxa de transmissão escolhida quando o servidor foi criado.
channel=COMChannel
Se o protocolo COM for usado, COMChannel deverá corresponder ao número do canal escolhido quando o servidor foi criado.
password=Password
Se uma senha foi usada quando o servidor foi criado, de senha deve ser fornecida para criar o cliente de depuração. Deve corresponder à palavra-passe original. As senhas diferenciam maiúsculas de minúsculas. Se a senha errada for fornecida, a mensagem de erro especificará "Erro 0x80004005".
ipversion=6
(Somente Ferramentas de Depuração para Windows 6.6.07 e versões anteriores) Força o depurador a usar IP versão 6 em vez de versão 4 ao usar TCP para se conectar à Internet. No Windows Vista e versões posteriores, o depurador tenta definir automaticamente o padrão para IP versão 6, tornando essa opção desnecessária.
ServerTransport
Especifica as configurações de protocolo que serão usadas quando o cliente se conectar ao repetidor. As possíveis sintaxes de protocolo são:
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]
Os parâmetros do protocolo têm os seguintes significados:
pipe=PipeName
Quando o protocolo NPIPE ou SPIPE é usado, PipeName é uma cadeia de caracteres que servirá como o nome do pipe. Cada nome de tubo deve identificar um repetidor exclusivo. Se você tentar reutilizar um nome de pipe, receberá uma mensagem de erro.
PipeName não deve conter espaços ou aspas.
PipeName pode incluir um código numérico de formato printf-style, como %x ou %d. O repetidor irá substituí-lo com o ID do processo de DbEngPrx. Um segundo código será substituído pelo ID de thread do DbEngPrx.
port=Socket
Quando o protocolo TCP ou SSL é usado, Socket é o número da porta do soquete.
Também é possível especificar um intervalo de portas separadas por dois pontos. DbEngPrx irá verificar cada porta neste intervalo para ver se é livre. Se encontrar uma porta livre e não ocorrer nenhum erro, o repetidor será criado. O cliente terá que especificar a porta real que está sendo usada para se conectar ao repetidor. Para determinar a porta real, procure o repetidor; Quando este repetidor é exibido, a porta será seguida por dois números separados por dois pontos. O primeiro número será a porta real utilizada; o segundo pode ser ignorado. Por exemplo, se a porta foi especificada como port=51:60e a porta 53 foi realmente usada, os resultados da pesquisa mostrarão "port=53:60". (Se você estiver usando o parâmetro clicon para estabelecer uma conexão reversa, o cliente pode especificar um intervalo de portas dessa maneira, enquanto o repetidor deve especificar a porta real usada.)
clicon= Cliente
Quando o protocolo TCP ou SSL é usado e o parâmetro
Como o repetidor está procurando um cliente específico, você não pode conectar vários clientes ao repetidor se você usar esse método. Se a conexão for recusada ou estiver quebrada, você terá que reiniciar o repetidor.
Quando clicon é usado, é melhor iniciar o cliente antes que o repetidor seja criado, embora a ordem habitual (repetidor antes do cliente) também seja permitida.
port=COMPort
Quando o protocolo COM é usado, COMPort especifica a porta COM a ser usada. O prefixo "COM" é opcional -- por exemplo, "com2" e "2" são aceitáveis. Não é possível usar a mesma porta COM no ClientTransport e no ServerTransport.
baud=BaudRate
Quando o protocolo COM é usado, BaudRate especifica a taxa de transmissão na qual a conexão será executada. Qualquer taxa de transmissão suportada pelo hardware é permitida. Se você estiver usando o protocolo COM no
channel=COMChannel
Se o protocolo COM for usado, COMChannel especifica o canal COM a ser usado na comunicação com o cliente. Pode ser qualquer valor entre 0 e 254, inclusive. Você pode usar uma única porta COM para várias conexões usando números de canal diferentes. (Isso é diferente do uso de portas COM para um cabo de depuração -- nessa situação, você não pode usar canais dentro de uma porta COM.)
escondido
Impede que o servidor apareça quando outro depurador exibe todos os servidores ativos.
password=Password
Requer que um cliente forneça a senha especificada para se conectar à sessão de depuração.
de senha pode ser qualquer cadeia alfanumérica.
IcfEnable
Faz com que o depurador habilite as conexões de porta necessárias para comunicação TCP ou pipe nomeado quando o Firewall de Conexão com a Internet estiver ativo. Por padrão, o Firewall de Conexão com a Internet desativa as portas usadas por esses protocolos. Quando IcfEnable é usado com uma conexão TCP, o depurador faz com que o Windows abra a porta especificada pelo parâmetro Socket. Quando IcfEnable é usado com uma conexão de pipe nomeado, o depurador faz com que o Windows abra as portas usadas para pipes nomeados (portas 139 e 445). O depurador não fecha essas portas após o término da conexão.
Terceiro passo: Iniciar o cliente
O cliente deve ser um cliente de depuração ou um cliente inteligente -- o que corresponder ao seu tipo de servidor. Para obter detalhes, consulte Ativando um cliente de depuração, Ativando um cliente inteligenteou Ativando um cliente inteligente (modo kernel).
Se o servidor rejeitar a conexão (por exemplo, se você fornecer uma senha incorreta), o repetidor e o cliente serão desligados. Você terá que reiniciar ambos para restabelecer o contato com o servidor.