尝试从Bot Framework 4.6连接到Cosmos DB时出现404

时间:2020-02-19 23:19:17

标签: botframework azure-cosmosdb azure-cosmosdb-mongoapi

当我尝试从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);

enter image description here

使用此处的文档,https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-howto-v4-storage?view=azure-bot-service-4.0&tabs=csharp#memory-storage

似乎Cosmos服务URL是正确的

它说使用SSL,所以我使用了端口443,但是连接字符串上的端口为10255

我想念什么?

这是我收到的错误消息:

机器人遇到错误或错误:响应状态代码不正确 表示成功:404子状态:0原因:(,请求URI:/, RequestStats:,SDK:Windows / 10.0.17763 cosmos-netstandard-sdk / 3.2.1)。

1 个答案:

答案 0 :(得分:2)

从端点和屏幕截图来看,看起来您在创建CosmosDB时选择了“ Azure Cosmos DB for MongoDB API”。相反,您需要选择Core。

API类型确定与CosmosDB服务进行“交互”的方式,CosmosDbPartitionedStorage使用“ Core” CosmosDB API而不是MongoDB API。


有点“埋”,所以我将其称为。 the docs(重点是我)中对此进行了描述:

  1. 在“新帐户”页面上,提供“订阅”,“资源组”信息。为您的“帐户名”字段创建一个唯一的名称-这最终将成为您数据访问URL名称的一部分。 对于API,请选择Core(SQL),然后提供附近的位置以缩短数据访问时间。
相关问题