> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 配置遊戲伺服器並連接 Visual Studio 偵錯工具

> 了解如何使用 RequestMultiplayerServer 配置 PlayFab 多人遊戲伺服器，並將 Visual Studio 偵錯工具附加至執行中的工作階段。

## 配置多人遊戲工作階段

使用 PlayFab 多人遊戲伺服器 2.0，您可以使用 [RequestMultiplayerServer](xref:titleid.playfabapi.com.multiplayer.multiplayerserver.requestmultiplayerserver) API 配置多人遊戲伺服器應用程式的執行個體。

此 API 通常是從您自己的服務 (例如配對服務或大廳服務)，使用為特定遊戲設定的 PlayFab 開發人員秘密金鑰來呼叫。如需秘密金鑰的詳細資訊，請參閱[秘密金鑰管理](/zh-TW/services/playfab/live-service-management/gamemanager/secret-key-management)。

聚集玩家並配置伺服器的典型模式：

1. 用戶端收集網路 QoS 資訊。
2. 用戶端與自訂配對服務互動，或透過社交邀請聚集。
3. 自訂配對服務使用排定優先順序的區域清單，為群組配置工作階段。

**RequestMultiplayerServer** 有數個關鍵參數：

* **BuildID** - 要配置的特定伺服器組建。
* **SessionID** - 工作階段的識別碼。*這是由呼叫端產生的 GUID 字串*。針對同一個邏輯工作階段重試此 API 時，應重複使用相同的識別碼。這可降低呼叫端的重試行為建立不必要伺服器的可能性。
* **SessionCookie** - 在啟用時，透過遊戲伺服器 SDK 傳達給所配置工作階段的任意資料。此欄位的典型用法是傳達遊戲伺服器用來驗證用戶端的共用金鑰。*資料必須小於 4 KB*。
* **PreferredRegions** - 用來配置伺服器的有序區域清單。我們建議使用從用戶端裝置收集的網路 QoS 測量值作為排列區域的主要因素。

成功的配置會傳回下列資訊：

* 伺服器的 **IPv4** 位址。
* **TCP/UDP** 連接埠對應 (請參閱[將用戶端連線至遊戲伺服器](/zh-TW/services/playfab/multiplayer/servers/connecting-clients-to-game-servers))。
* 伺服器的**區域**。

<Note>
  您可以使用 MpsAllocatorSample ([在此處](https://github.com/PlayFab/MpsSamples/tree/master/MpsAllocatorSample)取得)，在遊戲開發期間輕鬆配置遊戲伺服器
</Note>

## 用戶端配置

多人遊戲伺服器昂貴且強大。根據預設，您只能使用 PlayFab 開發人員秘密金鑰，從您*自己*信任的服務要求多人遊戲伺服器。

不過，*直接*從玩家裝置配置伺服器可以節省實作服務對服務呼叫的成本，並在某些情況下很有用。

若要啟用用戶端配置：

* 從左側功能表中選取 **Settings**。
* 選取 **API Features** 索引標籤。
* 然後啟用 **Allow Client to start games** 選項。

<img src="https://mintcdn.com/microsoft-4404708b/U1LR64ZWxo45eXwl/images/playfab/multiplayer/servers/tutorials/game-manager-settings-api-features-allow-client-to-start-games.png?fit=max&auto=format&n=U1LR64ZWxo45eXwl&q=85&s=3096df2ab104fcd3bed5015146b33436" alt="Game Manager - Settings - API Features - Allow Client to start games" width="1133" height="1200" data-path="images/playfab/multiplayer/servers/tutorials/game-manager-settings-api-features-allow-client-to-start-games.png" />

啟用此設定後，您可以使用與該遊戲相關聯之任何玩家的實體權杖呼叫 [RequestMultiplayerServer](xref:titleid.playfabapi.com.multiplayer.multiplayerserver.requestmultiplayerserver)。

## 對已部署的多人遊戲伺服器進行偵錯

您可能想在遊戲伺服器部署於 Azure 時對其進行遠端偵錯。使用 Visual Studio 時，目前需要您在容器中安裝並設定 Visual Studio 遠端偵錯工具。

<Note>
  下列程序將啟用不安全、未經驗證的偵錯。
</Note>

下列程序*只*應套用至用於開發和測試的伺服器組建，並且*通常應避免*在面向玩家的環境中使用。

1. 取得 VS2017 遠端偵錯工具：

```cmd theme={null}
Invoke-WebRequest -OutFile rtools_setup_x64.exe -Uri
https://aka.ms/vs/15/release/RemoteTools.amd64ret.enu.exe
```

2. 在遊戲伺服器資產套件中包含這些工具。
3. 在 Game Manager 中或使用 Entity API 建立伺服器組建的過程中，將連接埠 4022 TCP 設定為偵錯連接埠。
4. 您需要在容器內執行 `msvsmon`，以啟用遠端偵錯。常見的模式是指定 CMD 指令碼作為遊戲啟動命令，並使用命令列引數在遊戲伺服器可執行檔之外另外啟動 `msvsmon`。
5. 執行一次 `msvsmon`：

```cmd theme={null}
/prepcomputer /quiet
```

6. 使用旗標執行 `msvsmon` (如下所示)。

```cmd theme={null}
/nostatus /noauth /nosecuritywarn /anyuser /nofirewallwarn /nodiscovery /port 4022
```

<Note>
  我們建議*明確列出*連接埠，讓您的程式能在連接埠已被使用時處理處理序結束代碼，而不是繫結至未開放的隨機連接埠。
</Note>

7. 配置您的遊戲伺服器。
8. 使用配置呼叫所傳回的外部偵錯連接埠，嘗試透過 VS 進行偵錯。


## Related topics

- [PlayFab 遊戲伺服器的基本概念](/zh-TW/services/playfab/multiplayer/servers/basics-of-a-playfab-game-server.md)
- [在本機對遊戲伺服器進行偵錯以及與 PlayFab 整合](/zh-TW/services/playfab/multiplayer/servers/locally-debugging-game-servers-and-integration-with-playfab.md)
- [直接連線以對遊戲伺服器進行偵錯](/zh-TW/services/playfab/multiplayer/servers/directly-debugging-game-servers.md)
- [串流安裝：偵錯](/zh-TW/build/core-features/common/packaging/packaging-debugging.md)
- [Wrapper 範例](/zh-TW/services/playfab/multiplayer/servers/wrapper-sample.md)
