Я использую Microsoft. Azure .Cosmos.Client для подключения базы данных космоса из проекта веб-сборки Blazor. Моя база данных Cosmos имеет несколько регионов чтения, т.е. Южная Корея (базовое местоположение) и Восточная Япония (область чтения).
Я хочу, чтобы мое клиентское приложение Blazor загружало данные из ближайшего местоположения базы данных Cosmos. Для этого я надеялся, что база данных космоса автоматически перенаправит запрос на ближайший сервер, но всегда загружала данные из Южной Кореи. Чтобы решить эту проблему, я попытался указать свойство CosmosClientOptions.ApplicationRegion с фиксированным значением, как в приведенном ниже коде:
CosmosClientOptions clientOptions = new CosmosClientOptions()
{
ConnectionMode = ConnectionMode.Gateway,
ApplicationRegion = Regions.JapanEast // need to set this property dynamically based on users location
//ApplicationPreferredRegions = new List<string>() { Regions.JapanEast, Regions.KoreaSouth } //Also tried this, but always loading from Japan east even if accessed from South Korea
};
client = new CosmosClient(Credentials.EndPoint, Credentials.ResourceToken, clientOptions);
В этом случае данные всегда загружаются с сервера Japan East. Я также попытался установить свойство LimitToEndpoint = true, но не смог прояснить его.
Есть предложения?