存储JSON文件的位置,该文件将被Azure上托管的asp.net中的环境变量引用

存储JSON文件的位置,该文件将被Azure上托管的asp.net中的环境变量引用,azure,asp.net-web-api,environment-variables,google-cloud-firestore,azure-web-app-service,Azure,Asp.net Web Api,Environment Variables,Google Cloud Firestore,Azure Web App Service,我已经使用ASP.NET创建了一个Web服务,并将在Firestore中存储数据。因此,我需要设置引用JSON文件的GOOGLE_APPLICATION_CREDENTIALS环境变量。这在我的机器上本地工作,但在发布到Azure时不工作。问题是我找不到JSON文件来定位文件路径,我在发布之前仔细检查了我的本地项目文件夹中是否有JSON文件。我想知道存储我的JSON文件的最佳位置在哪里,这样我就可以找到文件路径,并且GOOGLE_应用程序_凭据可以在Azure门户中引用它 谢谢。如果发布时您的j

我已经使用ASP.NET创建了一个Web服务,并将在Firestore中存储数据。因此,我需要设置引用JSON文件的GOOGLE_APPLICATION_CREDENTIALS环境变量。这在我的机器上本地工作,但在发布到Azure时不工作。问题是我找不到JSON文件来定位文件路径,我在发布之前仔细检查了我的本地项目文件夹中是否有JSON文件。我想知道存储我的JSON文件的最佳位置在哪里,这样我就可以找到文件路径,并且GOOGLE_应用程序_凭据可以在Azure门户中引用它


谢谢。

如果发布时您的json文件在project中,它将上载到
D:\home\site\wwwroot\xxx.json
。您可以转到
https://yourwebname.scm.azurewebsites.net
以找到它

因此,您可以在门户上的
应用程序设置中设置环境变量,如下所示:


如果您希望避免将凭证文件签入源代码管理或在开发人员机器上,并且您已经有了一个安全的位置来存储字符串配置数据,那么这里有另一种选择

您可以通过这种方式启动Firestore客户端,并手动为其提供凭据:

 var credential = GoogleCredential.FromJson(<JSON AS STRING>);
 var channelCredentials = credential.ToChannelCredentials();
 var channel = new Channel(FirestoreClient.DefaultEndpoint.ToString(), channelCredentials);
 var client = FirestoreClient.Create(channel);
var-credential=GoogleCredential.FromJson();
var channelCredentials=credential.ToChannelCredentials();
var channel=新通道(FirestoreClient.DefaultEndpoint.ToString(),channelCredentials);
var client=FirestoreClient.Create(通道);

(此处使用Nuget软件包编写代码:)

您如何托管应用程序?您正在使用Azure应用程序服务吗?如果是,则在“应用程序设置”中声明。Azure应用程序服务中的应用程序设置中声明的任何内容都可以像environment variablesHi一样访问,很抱歉回复太晚。我发现问题是我确实将json文件放入了我的文件夹中,但随后我没有在VisualStudio中刷新它,所以当我发布到Azure时,该文件甚至不在那里,哈哈。但是谢谢!