我正在使用 CORE SQL 学习 cosmosdb 教程并尝试创建数据库。
EndpointUri 和 Key 正确,从 cosmosdb 帐户 => 设置 => 密钥复制
const string EndpointUri = "https://fergerg.azure.com:443/";
const string Key = "gvfvfdevgrvgre";
然后创建数据库时:
string databaseName = "demoDB_" + Guid.NewGuid().ToString().Substring(0, 5);
client = new CosmosClient(EndpointUri, Key);
database = await client.CreateDatabaseIfNotExistsAsync(databaseName);
返回错误403
未处理的异常。 System.AggregateException:一个或多个错误 发生。 (响应状态码不代表成功:Forbidden (403);子状态:0;活动ID:e10466;原因: ({"code":"Forbidden","message":""对资源 'dbs' 执行 'POST' 操作 不允许通过 Azure Cosmos DB 终结点。请打开此类 您的帐户的操作,或通过 Azure 执行此操作 资源管理器、Azure 门户、Azure CLI 或 Azure 电源外壳” 活动ID:14d3a978f6ee10466, Microsoft.Azure.Documents.Common/2.14.0"} RequestUri: https://sql-iknn-.documents.azure.com/dbs
因此端点数据库上禁止 POST:
documents.azure.com/dbs
我认为这已经改变了,这以前有效,但现在不可能再开箱即用了。
如何授予从远程代码向此端点发送 POST 请求的权限?
未处理的异常。 System.AggregateException:发生一个或多个错误。 (响应状态码不表示成功:禁止(403);子状态:0;ActivityId:e10466;
出现上述错误的原因是身份验证凭据不匹配、权限不足、防火墙或虚拟网络设置配置不正确。如果不需要专用连接,请确保允许
public
访问数据库。有关禁止例外的更多信息,请参阅此文档。
以下是在 Azure Cosmos DB 中创建数据库的示例:
class Program
{
private static readonly string EndpointUri = "*****";
private static readonly string Key = "*****";
static async Task Main(string[] args)
{
string databaseName = "secondDb" + Guid.NewGuid().ToString().Substring(0, 5);
using (CosmosClient client = new CosmosClient(EndpointUri, Key))
{
DatabaseResponse response = await client.CreateDatabaseIfNotExistsAsync(databaseName);
if (response.StatusCode == System.Net.HttpStatusCode.Created)
{
Console.WriteLine($"Database '{databaseName}' created successfully.");
}
else
{
Console.WriteLine($"Failed to create database '{databaseName}'. Status code: {response.StatusCode}");
}
}
}
}
输出:
Database secondDb4a663 created successfully.