繁体   English   中英

从Asp.Net Core中的web.config读取环境变量

[英]Read environment variables from web.config in Asp.Net Core

这是我的web.config文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false">
      <environmentVariables>
        <environmentVariable name="TEST_WEBCONFIG_VARIABLE" value="some test webconfig variable value" />
      </environmentVariables>
    </aspNetCore>
  </system.webServer>
</configuration>

如何从Startup.cs web.config中读取TEST_WEBCONFIG_VARIABLE

我尝试了Configuration["TEST_WEBCONFIG_VARIABLE"] ,但是此变量在配置值列表中不存在。

可以肯定,您只需要致电:

对于单个设置: Environment.GetEnvironmentVariable("TEST_WEBCONFIG_VARIABLE"‌​);

对于设置列表: Environment.GetEnvironmentVariables().GetEnumerator();

因为您是从配置而不是AppSettings访问EnvironmentVariables

从Visual Studio运行时,请像下面这样使用launchSettings.json-

  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "TEST_WEBCONFIG_VARIABLE":"123"
      }
    },
    "SamplePractice": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "TEST_WEBCONFIG_VARIABLE":"123"
      }
    }
  }

由于launchSettings.json仅限于Visual Studio,因此在发布版本的情况下,请像下面这样使用web.config-

<aspNetCore processPath="dotnet" arguments=".\MyAspNetCoreApplication.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" >
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
    <environmentVariable name="TEST_WEBCONFIG_VARIABLE" value="123" />
  </environmentVariables>
</aspNetCore>

并且此环境值将使用-在整个应用程序中读取

Environment.GetEnvironmentVariable("TEST_WEBCONFIG_VARIABLE");

注意! 仅在发布时有效。

暂无
暂无

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

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