C# 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 我哪里做错了?我需要在其他地方定义

使用.NET 4.5上的MVC框架在VS2017上开发webapp。在本地开发环境中,我使用web.config文件,如下所示:

<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);
            }

        }