我正在尝试从 mac 在 IIS 上部署一个 asp.net core 2.0 api 项目。
我想做的是为我的开发、登台和生产环境设置不同的 appsettings.json 文件,然后使用 dotnet -build 作为我的部署脚本的一部分调用不同的环境。
我查看了适用于旧版本 .net 核心的https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments,但我无法理解我需要做什么. 我不想为操作系统设置环境,而是以编程方式设置它(因为我的登台和生产环境用于同一台服务器)
我有一个 appsettings.Development.json 文件,当我运行我的应用程序时会使用它,但是当我只是将环境变量设置为构建命令的一部分时,我似乎无法加载我的 appsettings.Production.json 文件。
bash$ ASPNETCORE_ENVIRONMENT=Production dotnet run
Using launch settings from /Properties/launchSettings.json...
Hosting environment: Development
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
最终,我试图根据我构建的环境部署特定的连接字符串。有一个更好的方法吗?
更新
@Chris 在下面的回答有所帮助,此外我还发现了以下内容:
每个 IIS 应用程序池 如果您需要为在隔离的应用程序池中运行的单个应用程序设置环境变量(在 IIS 10.0+ 上受支持),请参阅 IIS 参考文档中环境变量主题的 AppCmd.exe 命令部分。
这让我可以为每个应用程序池设置不同的环境