我正在使用 Microsoft.Azure.Cosmos.Client 从 blazor Web 程序集项目连接 cosmos 数据库。我的 Cosmos 数据库有多个读取区域,即韩国(基准位置)和日本东部(读取区域)。
我希望我的 blazor 客户端应用程序从最近的 cosmos 数据库位置加载数据。为此,我希望 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);
在这种情况下,它总是从日本东部服务器加载数据。我也尝试设置 LimitToEndpoint = true 属性,但无法让自己清楚地了解它。
有什么建议么?