繁体   English   中英

azure 应用服务中的谷歌应用凭证(as.net core web api)

[英]Google application credentials in azure app service (aspnet core web api)

所以我正在使用 Firebase SDK 向我的 android 客户端发送推送通知。

在本地 IIS 这就是我配置 FirebaseSdk 的方式。 在 Startup.cs 我有

   FirebaseApp.Create(new AppOptions()
            {
                Credential = GoogleCredential.GetApplicationDefault(),
            });

在我的 web.config 我有

<environmentVariables>
        <environmentVariable name="GOOGLE_APPLICATION_CREDENTIALS" value="D:\credentials.json" />
        <environmentVariable name="COMPLUS_ForceENC" value="1" />
      </environmentVariables>

这个GOOGLE_APPLICATION_CREDENTIALS是 Firebase SDK 工作所需要的。

现在来到 azure 我通过选择 App Service->Configuration->New Application Setting 创建了一个环境变量

我给了它我在以下链接上传的文件的路径

D:\home\site\credentials.json . 

我使用门户中提供的 kudu 工具确定了这条路径。 我还通过单击环境变量确认已使用 kudu 创建了一个变量。

但是我在部署期间仍然收到此错误

访问 Microsoft.Extensions.Hosting 服务时出错。 在没有应用程序服务提供商的情况下继续。 错误:发生一个或多个错误。 (应用程序默认凭证不可用。如果在 Google Compute Engine 中运行,则它们可用。否则,环境变量 GOOGLE_APPLICATION_CREDENTIALS 必须定义为指向定义凭证的文件。请参阅https://developers.google.com/accounts/docs /application-default-credentials以获取更多信息。)无法创建类型为“DbContext”的 object。 有关设计时支持的不同模式,请参阅https://go.microsoft.com/fwlink/?linkid=851728

关于为什么我的文件不能用于应用程序的任何指示?

请使用应用服务刀片菜单下的应用配置,您可以在此处放置全局环境变量,就像将其放入 web.config 文件中一样。 您可以从这里了解它。

您需要关闭 Visual Studio 并再次打开它并进行部署。 即这是由于 VS 无法即时检测到环境变量的变化。

暂无
暂无

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

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