值不能为空。参数名:uriString

10

我最近使用Visual Studio 2015按照以下链接创建了一个应用程序: https://azure.microsoft.com/en-in/documentation/articles/documentdb-dotnet-application/

但是当我构建解决方案时,它显示了以下错误:

值不能为null
参数名称:uriString
第71行:public static void Initialize()
第72行:{
第73行:client = new DocumentClient(new Uri(ConfigurationManager.AppSettings["https://<db-name>.documents.azure.com:443/"]), ConfigurationManager.AppSettings["<db-key>"]);
第74行:CreateDatabaseIfNotExistsAsync().Wait();
第75行:CreateCollectionIfNotExistsAsync().Wait();

源文件:C:\Users\BHAVIN PATEL\Documents\Visual Studio 2015\Projects\documentdb-dotnet-todo-app-master\src\DocumentDBRepository.cs 行:73

我已经从在Azure中创建的DocumentDB应用程序中将URI和Primary/Secondary Key插入到了我的应用程序的Web.config文件中。


你的 App.config 中是否有名为 "https://bhavin-patel.documents.azure.com:443/" 的 appSetting 键? - diiN__________
2
任何其他操作之前:请立即更改您的数据库账户访问密钥 - 您刚刚将其发布到了全球。我已经为您编辑过了,但人们仍然可以找到它。 - David Makogon
2
请不要删除问题并替换为解决方案。问题应该保持为问题,而答案部分可以用于告知其他人您是如何解决问题的。如果当前答案解决了问题,请考虑将其标记为已接受。 - Bugs
正如Bugs所说:答案不应该出现在问题中。如果你想回答自己的问题,那么可以这样做。但请不要修改问题本身。 - Cody Gray
1
如果有帮助的话,它所提到的 uriString 是来自于这个构造函数: https://learn.microsoft.com/en-us/dotnet/api/system.uri.-ctor?view=net-6.0#system-uri-ctor(system-string) - David Klempfner
2个回答

5
当我运行我的Azure函数时,出现了这个错误。

enter image description here

我正在阅读来自 Azure Key Vault 的连接字符串值,并将其设置在 Azure Function 配置的应用程序设置中。根据 Microsoft 文档,必须为 Azure Function 设置 托管标识,并使用创建的托管标识对象在 Key Vault 配置中创建一个 访问策略,以便 Azure Function 应用程序可以从 Key Vault 读取值。
我错过了这些设置,因此密钥 ServiceBusConnectionString 的应用程序设置值始终为空,因此出现了上述错误。配置访问策略后,错误消失了。希望有所帮助。

enter image description here


4

您的问题是数据库端点和密钥应该在.config文件中,像这样:

<appSettings>
  <add key="documentDbEndpoint" value="https://bhavin-patel.documents.azure.com:443/"/>
  <add key="documentDbKey" value="naw1rq0lhaPwzCSI1w69EQYEfUeL0rU*********************************"/>
</appSettings>

您应该使用配置管理器按键读取设置。
client = new DocumentClient(new Uri(ConfigurationManager.AppSettings["documentDbEndpoint"]), ConfigurationManager.AppSettings["documentDbKey"]);

请记得使用门户中正确的documentDbKey。我已用 * 遮蔽了部分关键内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接