[英]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.