我创建了一个具有dotnet核心的简单webapi项目。
我正在尝试使用ASPNETCORE_ENVIRONMENT系统变量设置运行环境。
C:\devel\apps\webapi>set ASPNETCORE_ENVIRONMENT=Production
C:\devel\apps\webapi>echo %ASPNETCORE_ENVIRONMENT%
Production
C:\devel\apps\webapi>dotnet run
Using launch settings from C:\devel\apps\webapi\Properties\launchSettings.json...
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
User profile is available. Using 'C:\Users\SSCARANO\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
Hosting environment: Development
Content root path: C:\devel\apps\webapi
Now listening on: https://localhost:5001
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
我尝试打开其他控制台,也将其设置为以管理员身份登录,但是该应用始终在开发模式下运行。
我看到了这个(https://stackoverflow.com/a/40102470/47633)相关问题,但我没有使用IIS
答案 0 :(得分:2)
问题在于您如何设置环境变量。在命令行上,您不需要引号,因此您应该使用以下引号:
C:\> set ASPNETCORE_ENVIRONMENT=Production
C:\> echo %ASPNETCORE_ENVIRONMENT%
Production
答案 1 :(得分:2)
我怀疑您遇到的问题是ASPNETCORE_ENVIRONMENT
文件中定义了C:\devel\apps\webapi\Properties\launchSettings.json
变量。
dotnet run
的工作方式是加载该文件并找到commandName
是project
的第一个配置文件,然后使用它来运行应用程序。如果您尚未对该文件进行任何更改,则很有可能该配置文件的environmentVariables
部分包含设置为ASPNETCORE_ENVIRONMENT
的{{1}}变量。
如果要在Development
模式下运行应用程序,则有两个选项:
Production
,这意味着每次执行Production
时,它将在生产模式下运行该应用程序;或dotnet run
变量设置为ASPNETCORE_ENVIRONMENT
。如果执行Production