C#应用程序默认凭据不可用

C#应用程序默认凭据不可用,c#,asp.net,google-cloud-platform,C#,Asp.net,Google Cloud Platform,我当前正在尝试访问云API,收到以下错误: 应用程序默认凭据不可用。如果在谷歌计算引擎中运行,它们是可用的。否则,必须定义指向定义凭据的文件的环境变量GOOGLE\u APPLICATION\u CREDENTIALS 我已经进入我的google云平台帐户,启用了计费,创建了服务帐户,下载了一个JSON密钥,并在我的环境变量中设置了google_应用程序_凭据,并检查了它是否指向正确的JSON密钥。它指向我的API密钥 'C:\Users\jade.wilson\source\repos\Clo

我当前正在尝试访问云API,收到以下错误:

应用程序默认凭据不可用。如果在谷歌计算引擎中运行,它们是可用的。否则,必须定义指向定义凭据的文件的环境变量GOOGLE\u APPLICATION\u CREDENTIALS

我已经进入我的google云平台帐户,启用了计费,创建了服务帐户,下载了一个JSON密钥,并在我的环境变量中设置了google_应用程序_凭据,并检查了它是否指向正确的JSON密钥。它指向我的API密钥 'C:\Users\jade.wilson\source\repos\CloudApi\CloudApi\Services\Keys\CloudAPIKey.json'

代码如下:

   var credential = GoogleCredential.GetApplicationDefault();
   var channel = new Grpc.Core.Channel(SpeechClient.DefaultEndpoint.ToString(), credential.ToChannelCredentials());

   var client = SpeechClient.Create(channel);

   response = await client.RecognizeAsync(new RecognitionConfig()
            {
                Encoding = RecognitionConfig.Types.AudioEncoding.Linear16,
                SampleRateHertz = 16000,
                LanguageCode = "en",
            }, RecognitionAudio.FromStream(audio));

它没有越过第一条线。我还缺少什么吗?

如果您正在使用Visual Studio,请关闭并重新打开它


如果在VisualStudio打开时创建/更改环境变量,您将运行/调试的程序将无法看到它们。您必须退出Visual Studio并重新输入(发生在我身上:VS 2019版本16.7.2,Win 10版本2004-OS Build 19041.450)

出现了什么错误?@TheChubbyPanda应用程序默认凭据不可用。如果在谷歌计算引擎中运行,它们是可用的。否则,必须定义环境变量GOOGLE\u APPLICATION\u CREDENTIALS,指向定义凭据的文件。啊,抱歉,问题中没有提到,我建议您进行编辑。请确保您没有输入错误。你是如何执行你的程序的?你已经从你的主目录中指定了一个路径,因此通常你需要以该用户的身份登录才能拥有该文件的权限。你能告诉我们你是如何设置
GOOGLE\u应用程序\u凭据的吗?如果设置了该环境变量,我希望您在文件错误等情况下得到不同的错误(请注意,我可能在这方面是错误的。)如果您在启动时记录
environment.GetEnvironmentVariable(“谷歌应用程序凭据”)
,您看到您期望的值了吗?(我猜您已经为一个用户设置了环境变量,但没有为运行代码的用户设置环境变量。)还要注意,只需使用
var client=SpeechClient.Create()
是使用默认端点和默认凭据的简单方法。