【问题标题】:How to instruct IIS to use environment variable from web.config, to run the .net core application?如何指示 IIS 使用 web.config 中的环境变量来运行 .net 核心应用程序?
【发布时间】:2019-05-24 11:25:16
【问题描述】:

最近,我在 IIS 上托管 .net core 2.2 应用程序时遇到了一个奇怪的问题。

托管后,我收到“启动应用程序时出错”。为了找出根本原因,我启用了日志文件,发现是环境变量问题。

我在web.config 文件中配置了环境变量,如下所示,

<aspNetCore processPath="dotnet" arguments=".\PctrClient.Api.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="InProcess">
    <environmentVariables>
      <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
    </environmentVariables>
  </aspNetCore>

程序.cs

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
               .UseStartup<Startup>()
               .UseIISIntegration();
}

但网络应用程序将其解释为Development;Development。怎么可能?

来自日志文件的信息

info 托管环境:开发;开发

【问题讨论】:

  • 你确定它不仅仅是被错误地写入你的日志吗?
  • 是的,我确定,因为我通过在 web.config 文件中设置 stdoutLogEnabled="true" 获得了他的信息
  • 即使是这样,也不应该导致您看到的错误。
  • 实际上我从appsettings.development.json 文件中读取了一些配置信息,因为IIS 将环境变量解释为Development;Development,实际的appsettings.development.json 文件没有加载到应用程序中。因此,当我在启动应用程序时尝试访问 appsettings.development.json 文件中的配置信息时,会出现 NULL 引用异常。
  • 那你应该先解决这个问题。

标签: iis .net-core asp.net-core-2.2


【解决方案1】:

为了解决这个问题,我们必须在system 级别或web.config 文件中设置环境变量。 (如果我们在这两个地方都设置了环境变量,它将被.net core 2.2框架附加)

在我看来,这似乎是一种奇怪的行为,所以我在GitHub/AspNetCore提出了这个问题,以了解其他社区用户的想法,希望这个问题能尽快得到解决。

【讨论】:

    【解决方案2】:

    我遇到了有关 IIS 的问题,我用标签更改了 applicationHost.config。现在我可以使用具有不同环境的相同 IIS。每个网络应用程序。

    【讨论】:

    • 感谢您的回复。我也可以试试你的建议。实际上我已经在我的系统以及web.config 文件中配置了环境变量ASPNETCORE_ENVIRONMENT。当我从系统或 web.config 文件中删除环境变量时,应用程序工作正常。看起来,.net core 2.2 连接了系统和 web.config 环境变量。我在 .net core github 存储库中创建了相同的问题。我会发布我的回复,一旦我得到他们的回复。
    猜你喜欢
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 2022-10-15
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多