Как указать IIS использовать переменную окружения из web.config для запуска основного приложения .net? - PullRequest
0 голосов
/ 26 декабря 2018

Недавно я столкнулся со странной проблемой при размещении приложения .net core 2.2 на IIS.

После хостинга я получаю " Произошла ошибка при запуске приложения ".Чтобы определить основную причину, я включил файл журнала и обнаружил, что это связано с проблемой переменной среды.

Я настроил переменную среды в моем файле 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>

Program.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 Хостинг: Разработка; Разработка

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Чтобы решить эту проблему, мы должны установить переменную окружения либо на уровне system, либо в файле web.config.(если мы установим переменную окружения в обоих местах, она будет добавлена ​​фреймворком .net core 2.2)

С моей точки зрения, это выглядит странно, поэтому я поднял эту проблему в GitHub/ AspNetCore чтобы узнать мнение других пользователей сообщества, надеюсь, эта проблема будет решена в ближайшее время.

0 голосов
/ 26 декабря 2018

У меня проблемы с IIS, и я изменил applicationHost.config с тегами.Теперь я могу использовать один и тот же IIS с другим env.для каждого веб-приложения.

...