3

Класс запуска содержитStartup.cs возвращается Неверная конфигурация

public Startup(IHostingEnvironment env) 
{ 
    var builder = new ConfigurationBuilder() 
     .SetBasePath(env.ContentRootPath) 
     .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) 
     .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true); 

    Console.WriteLine($"{env.EnvironmentName.ToString()}"); 

    if (env.IsDevelopment()) 
    { 
     // For more details on using the user secret store see 
     // https://go.microsoft.com/fwlink/?LinkID=532709 
     builder.AddUserSecrets(); 
    } 

    builder.AddEnvironmentVariables(); 
    Configuration = builder.Build(); 
} 

но env.EnvironmentName.ToString() возвращает "Производство".

Я уже настроить мой ASPNETCORE_ENVIRONMENT на «развитие» в launchSettings.json

+3

Как начать проект? 'ASPNETCORE_ENVIRONMENT' в настройках проекта/launchSettings.json применяется только при запуске с Visual Studio через F5/Ctrl + F5. Запуск его через dotnet или другими способами не применяется. launchSattings.json - это чистый VIsual Studio Mechanic – Tseng

+0

Есть ли способ установить переменные среды. Я использую визуальный студийный код и CLI для создания ячеек dotnet для разработки. – datkom

+0

Если вы запустили его из командной строки, используйте команды оболочки оболочки для установки переменной среды (CommandLine, Powershell, bash или любого другого, что использует MacOS) – Tseng

ответ

0

получил эту работу с помощью Powershell команды:

$Env:ASPNETCORE_ENVIRONMENT = "Development"

0

Это обычно происходит, когда у вас есть среда установки в web.config тоже.

Например, если у вас есть среда настройки, Production в launchSettings.json -

"profiles": { 
    "IIS Express": { 
     "commandName": "IISExpress", 
     "launchBrowser": true, 
     "environmentVariables": { 
     "ASPNETCORE_ENVIRONMENT": "Production" 
     } 
    }, 

И в web.config, если у вас есть другие среды Staging -

<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"> 
    <environmentVariables> 
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Staging" /> 
    </environmentVariables> 
</aspNetCore> 

В этом случае вы получите Staging когда вы пытаетесь читать env.EnvironmentName в startup.cs

Посмотрите, поможет ли это.

+0

Пробовал поставить '' на web.config, но все равно не работает. Я использую визуальный студийный код и CLI для создания ячеек dotnet для разработки. – datkom

+0

Если вы не используете VS2015, тогда вы можете установить переменную из командной строки, как это: 'set ASPNETCORE_ENVIRONMENT = Development', а затем запустить команды' dotnet'. – Sanket

+0

уже установил его 'set ASPNETCORE_ENVIRONMENT = Development'. Все еще получая тот же результат – datkom

 Смежные вопросы

  • Нет связанных вопросов^_^