C# web.config中的环境变量
使用.NET 4.5上的MVC框架在VS2017上开发webapp。在本地开发环境中,我使用web.config文件,如下所示:C# web.config中的环境变量,c#,azure,C#,Azure,使用.NET 4.5上的MVC框架在VS2017上开发webapp。在本地开发环境中,我使用web.config文件,如下所示: <appSettings> <add key="GOOGLE_APPLICATION_CREDENTIALS" value="C:\\Work\\Services-abcd.json" /> </appSettings> 我无法声明TranslationClient 我哪里做错了?我需要在其他地方定义
<appSettings>
<add key="GOOGLE_APPLICATION_CREDENTIALS"
value="C:\\Work\\Services-abcd.json" />
</appSettings>
我无法声明TranslationClient
我哪里做错了?我需要在其他地方定义它吗
根据您的代码和描述,我发现您定义了应用程序设置,而不是环境变量。注意:应用程序设置与环境变量不同
如果您想在azure web应用程序中设置环境变量,我建议您可以在web应用程序代码中进行设置,并将应用程序上载到应用程序服务,如下所示:
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", Server.MapPath("test/test.txt"));
当我在azure web服务上将其部署到staging/production时,我将如何共享json文件以及web.config文件需要如何更改
我建议您可以创建一个文件夹,将json文件存储在web应用程序中,然后使用Server.MapPath获取json文件的正确路径
因为我没有GoogleCloudAppCredentials json文件,所以我在测试演示中添加了一个txt文件来测试代码是否可以正常工作
关于我的测试演示的更多细节,您可以参考以下代码
protected void Page_Load(object sender, EventArgs e)
{
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", Server.MapPath("test/test.txt"));
}
protected void Button1_Click(object sender, EventArgs e)
{
string path = Environment.GetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS");
Response.Write(path + "\n");
string[] lines = System.IO.File.ReadAllLines(path);
foreach (string line in lines)
{
Response.Write(line);
}
}
结果(111为txt文件内容):
您能在其中包括您读取该设置的行吗?请确保您将其放置在正确的解决方案中。如果您的项目中有多个解决方案,那么您必须将其放在mvc web应用程序环境变量中,
appSettings
不是一回事……脱离主题:您不需要对xml中的路径使用双斜杠\\
files@BugFinder我已经按照要求加入了代码
protected void Page_Load(object sender, EventArgs e)
{
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", Server.MapPath("test/test.txt"));
}
protected void Button1_Click(object sender, EventArgs e)
{
string path = Environment.GetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS");
Response.Write(path + "\n");
string[] lines = System.IO.File.ReadAllLines(path);
foreach (string line in lines)
{
Response.Write(line);
}
}