[英]System.ArgumentNullException: 'Value cannot be null. Parameter name: key'
[英]System.ArgumentNullException: 'Value cannot be null.'
我是C#的新手,在從事旋轉VM(並支持MS Azure中的資源)的項目時遇到了此錯誤。
我正在使用的代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Azure.Management.Compute.Fluent;
using Microsoft.Azure.Management.Compute.Fluent.Models;
using Microsoft.Azure.Management.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent.Core;
namespace ConsoleApp1
{
class Program
{
private static void Main(string[] args)
{
var credentials = SdkContext.AzureCredentialsFactory.FromFile(Environment.GetEnvironmentVariable("AZURE_AUTH_LOCATION"));
var azure = Azure
.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(credentials)
.WithDefaultSubscription();
另外,我還有一個“ azureauth.properties.txt”文件,用於設置上面代碼中引用的新環境路徑"AZURE_AUTH_LOCATION"
。
要設置路徑,我使用了簡單的PS命令:
[Environment]::SetEnvironmentVariable("AZURE_AUTH_LOCATION", "C:\MY-PATH\azureauth.properties", "User")
azureauth.properties文件包含以下格式的簡單租戶/應用程序/密鑰ID:
subscription=<subscription-id>
client=<application-id>
key=<authentication-key>
tenant=<tenant-id>
managementURI=https://management.core.windows.net/
baseURL=https://management.azure.com/
authURL=https://login.windows.net/
graphURL=https://graph.windows.net/
每當我嘗試運行該項目時,我都會收到一條錯誤消息:
System.ArgumentNullException:'值不能為null。'
專門針對以下行:
var credentials = SdkContext.AzureCredentialsFactory.FromFile(Environment.GetEnvironmentVariable("AZURE_AUTH_LOCATION"));
知道為什么嗎?
就像luxun所說的,您必須定義環境變量。 為此,打開cmd(在Windows上)並輸入:
設置AZURE_AUTH_LOCATION
這將顯示環境變量“ AZURE_AUTH_LOCATION”。 如果結果為“未定義環境變量AZURE_AUTH_LOCATION”,或者路徑錯誤,則在cmd上寫:
SET AZURE_AUTH_LOCATION = PathOfTheAzureAuthLocationFile
這應該可以解決問題。
Environment.GetEnvironmentVariable("AZURE_AUTH_LOCATION")
必須返回null。
在這種情況下,您可能要檢查該環境變量是否已實際定義或文件是否存在。
定義一個變量,例如:
var location = Environment.GetEnvironmentVariable("AZURE_AUTH_LOCATION");
在VS中進行調試時,您應該能夠通過右鍵單擊位置並單擊quickwatch來檢查位置的值。
非常感謝您的建議。 最后,該錯誤是由男生在將Env變量設置為第一位時發生的錯誤而產生的(相對路徑包含我之前未發現的錯誤)。
我最終能夠運行它。
也進行了更改以在配置文件中定義路徑。
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.