当我尝试从Bot Framework 4.6连接到Cosmos DB时,我不确定连接字符串的格式是否正确:
IStorage memoryStorage = null;
// memoryStorage = new MemoryStorage();
memoryStorage = new CosmosDbPartitionedStorage(
new CosmosDbPartitionedStorageOptions
{
CosmosDbEndpoint = "https://myDB.mongo.cosmos.azure.com:443/",
AuthKey = "MyKey",
DatabaseId = "dev",
ContainerId = "conversation-state"
}
);
var conversationState = new Models.ConversationState(memoryStorage);
var UserState = new UserState(memoryStorage);
services.AddSingleton(conversationState);
services.AddSingleton(UserState);
似乎Cosmos服务URL是正确的
它说使用SSL,所以我使用了端口443,但是连接字符串上的端口为10255
我想念什么?
这是我收到的错误消息:
机器人遇到错误或错误:响应状态代码不正确 表示成功:404子状态:0原因:(,请求URI:/, RequestStats:,SDK:Windows / 10.0.17763 cosmos-netstandard-sdk / 3.2.1)。
答案 0 :(得分:2)
从端点和屏幕截图来看,看起来您在创建CosmosDB时选择了“ Azure Cosmos DB for MongoDB API”。相反,您需要选择Core。
API类型确定与CosmosDB服务进行“交互”的方式,CosmosDbPartitionedStorage
使用“ Core” CosmosDB API而不是MongoDB API。
有点“埋”,所以我将其称为。 the docs(重点是我)中对此进行了描述:
- 在“新帐户”页面上,提供“订阅”,“资源组”信息。为您的“帐户名”字段创建一个唯一的名称-这最终将成为您数据访问URL名称的一部分。 对于API,请选择Core(SQL),然后提供附近的位置以缩短数据访问时间。