繁体   English   中英

值不能为空。 参数名称:uriString

[英]Value cannot be null. Parameter name: uriString

我最近在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应用程序的应用程序的Web.config文件中插入了URI和主键/辅助键。

您的问题是数据库端点和密钥应位于.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。 我用*掩盖了部分钥匙

运行Azure Function时出现此错误。

在此处输入图片说明

我正在从Azure Key Vault中读取连接字符串值之一,并且已在Azure Function配置的应用程序设置中进行了设置。 根据Microsoft文档的要求 ,必须使用创建的托管身份对象在Azure Vault配置中设置Azure Function的Managed Identity并创建Access Policy ,以便Azure Function应用程序可以从Key Vault中读取值。

我缺少此设置,因此键ServiceBusConnectionString的应用程序设置值始终为null,因此出现上述错误。 配置访问策略后,错误消失了。 希望能帮助到你。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM