啟動重複項
若要啟動重複程式連線,您通常會先啟動伺服器,然後啟動重複程式,然後啟動用戶端。
您也可以先啟動重複程序,然後再啟動伺服器。 但是,除非您使用 clicon 參數來建立反向連線,否則客戶端必須一律在最後啟動。
步驟一:啟動伺服器
伺服器可以是偵錯伺服器、進程伺服器或 KD 連接伺服器。 您可以像往常一樣啟動此動作,不同之處在於傳輸通訊協定設定將用來連線到重複程式,而不是用戶端。 如需詳細資訊,請參閱啟用偵錯伺服器、啟用進程伺服器或啟用 KD 連接伺服器。
如果您在建立伺服器時使用密碼,用戶端附加時需要此密碼,但在建立重複程式時則不需要此密碼。
如果您使用 隱藏 參數,伺服器將會如往常一樣隱藏。 重複程式本身一律會隱藏。
步驟 2:啟動重複項
Windows 偵錯工具中包含的重複項稱為 DbEngPrx (dbengprx.exe)。
DbEngPrx 瞭解下列傳輸通訊協定:命名管道 (NPIPE)、TCP 和 COM 埠。
如果您的用戶端和伺服器使用安全套接字層 (SSL) 通訊協定,您應該使用 TCP 通訊協定做為重複項。 如果您的用戶端和伺服器使用安全管道 (SPIPE) 通訊協定,您應該針對重複項使用 NPIPE 通訊協定。 重複項會傳遞它接收的任何數據,而不會解譯、加密或解密任何資訊。 所有加密和解密都會由客戶端和伺服器完成。
DbEnPrx 命令行的語法如下所示:
dbengprx [-p] -c ClientTransport -s ServerTransport
上述命令中的參數具有下列可能的值:
-p
即使在卸除所有連線之後,DbEngPrx 仍會繼續存在。
ClientTransport
指定要用於連線到伺服器的通訊協議設定。 通訊協議應該符合建立伺服器時所使用的通訊協定。 通訊協定語法如下:
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]
通訊協議參數具有下列意義:
Server
這是建立伺服器之計算機的網路名稱或IP位址。 兩個初始反斜杠 (\) 是選擇性的。
pipe= PipeName
如果使用 NPIPE 或 SPIPE 通訊協定, PipeName 是建立伺服器時提供給管道的名稱。
port= 插座
如果使用 TCP 或 SSL 通訊協定, 套接字 是建立伺服器時所使用的相同套接字埠號碼。
clicon
指定伺服器會嘗試透過反向連接連接到重複程式。 只有在伺服器使用 clicon 時,ClientTransport 才能使用 clicon。 在大部分情況下,使用反向連接時,會在伺服器之前啟動重複程式。
port= COMPort
如果使用 COM 通訊協定, COMPort 會指定要使用的 COM 埠。 前置詞 “COM” 是選擇性的 -- 例如,可以接受 “com2” 和 “2”。
baud= BaudRate
如果使用 COM 通訊協定, BaudRate 應該符合建立伺服器時所選擇的包速率。
channel= COMChannel
如果使用 COM 通訊協定, COMChannel 應該符合建立伺服器時所選擇的通道號碼。
password= 密碼
如果在建立伺服器時使用密碼, 則必須提供密碼 ,才能建立偵錯用戶端。 它必須符合原始密碼。 密碼會區分大小寫。 如果提供錯誤的密碼,錯誤訊息會指定「錯誤0x80004005」。
ipversion=6
(僅限適用於 Windows 6.6.07 和更早版本的偵錯工具)使用 TCP 連線到因特網時,強制調試程式使用 IP 第 6 版,而不是第 4 版。 在 Windows Vista 和更新版本中,調試程式會嘗試自動預設為 IP 版本 6,因此不需要此選項。
ServerTransport
指定客戶端連接到重複程式時將使用的通訊協議設定。 可能的通訊協定語法如下:
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]
通訊協議參數具有下列意義:
pipe= PipeName
使用 NPIPE 或 SPIPE 通訊協定時, PipeName 是將做為管道名稱的字串。 每個管道名稱都應該識別唯一的重複項。 如果您嘗試重複使用管道名稱,您會收到錯誤訊息。 PipeName 不得包含空格或引號。 PipeName 可以包含數值 printf 樣式格式代碼,例如 %x 或 %d。 重複項會將此取代為 DbEngPrx 的進程識別碼。 第二個這類程式代碼將會取代為 DbEngPrx 的線程標識碼。
port= 插座
使用 TCP 或 SSL 通訊協定時, Socket 是套接字埠號碼。
您也可以指定以冒號分隔的埠範圍。 DbEngPrx 會檢查此範圍中的每個埠,以查看其是否可用。 如果找到免費埠且不會發生錯誤,則會建立重複項。 用戶端必須指定用來連線到重複程序的實際埠。 若要判斷實際埠,請搜尋重複項;顯示這個重複項時,埠後面會接著兩個以冒號分隔的數位。 第一個數位將是實際使用的埠;可以忽略第二個 。 例如,如果埠指定為 port=51:60,且實際使用埠 53,搜尋結果會顯示 “port=53:60”。 (如果您使用 clicon 參數來建立反向連線,用戶端可以透過這種方式指定埠範圍,而重複項必須指定所使用的實際埠。
clicon=Client
使用 TCP 或 SSL 通訊協定並 指定 clicon 參數時, 將會開啟反向連線 。 這表示重複程式會嘗試連線到用戶端,而不是讓用戶端起始聯繫人。 如果您的防火牆無法正常進行連線,這非常有用。 用戶端 會指定用戶端存在或將要建立之計算機的網路名稱或IP位址。 兩個初始反斜杠 (\) 是選擇性的。
由於重複程式正在尋找一個特定的用戶端,因此如果您使用此方法,就無法將多個用戶端連線到重複程式。 如果連線遭到拒絕或中斷,您必須重新啟動重複程式。
使用 clicon 時,最好在建立重複程式之前啟動客戶端,不過也允許一般順序(用戶端之前的重複程式)。
port= COMPort
使用 COM 通訊協定時, COMPort 會指定要使用的 COM 埠。 前置詞 “COM” 是選擇性的 -- 例如,可以接受 “com2” 和 “2”。 您無法在 ClientTransport 和 ServerTransport 中使用相同的 COM 連接埠。
baud= BaudRate
使用 COM 通訊協定時, BaudRate 會指定連線執行所在的傳輸速率。 允許硬體支援的任何包速率。 如果您在 ClientTransport 和 ServerTransport 中使用 COM 通訊協定,您可以指定不同的傳輸速率,但速度變慢自然會是客戶端和伺服器彼此通訊的速度限制。
channel= COMChannel
如果使用 COM 通訊協定, COMChannel 會指定要用於與用戶端通訊的 COM 通道。 這可以是介於 0 到 254 之間的任何值,包含。 您可以使用單一 COM 埠搭配不同的通道號碼進行多個連線。 (這與使用 COM 埠進行偵錯纜線的方式不同 -- 在這種情況下,您無法在 COM 埠內使用通道。
hidden
當另一個調試程序顯示所有作用中的伺服器時,防止伺服器出現。
password= 密碼
客戶端必須提供指定的密碼,才能連線到偵錯會話。 密碼 可以是任何英數位元字串。
IcfEnable
讓調試程式在因特網連線防火牆作用中時啟用 TCP 或命名管道通訊的必要埠連線。 根據預設,因特網連線防火牆會停用這些通訊協定所使用的埠。 當 IcfEnable 與 TCP 連線搭配使用時,調試程式會讓 Windows 開啟 Socket 參數所指定的埠。 當 IcfEnable 與命名管道連接搭配使用時,調試程式會讓 Windows 開啟用於命名管道的埠(埠 139 和 445)。 調試程式不會在連線終止之後關閉這些埠。
步驟三:啟動用戶端
用戶端應該是偵錯客戶端或智慧型手機客戶端,無論對應到您的伺服器類型。 如需詳細資訊,請參閱啟用偵錯客戶端、啟用智慧型手機客戶端或啟用智慧型手機用戶端(核心模式)。
如果伺服器拒絕連線(例如,如果您提供不正確的密碼),則重複程式和客戶端都會關閉。 您必須重新啟動這兩者,才能重新建立與伺服器的連絡。