Windows 应用程序设置管理和部署
Windows appsettings management and deployment
我正在尝试合理化配置文件转换的有用性以简化部署,而不是将连接字符串留在源代码管理中的安全性。目前有 staging/deployment 服务器的发布配置文件,它们具有指向正确数据库的所有配置(连接字符串)。由于使用了像 heroku 这样的 PaaS 产品,我已经深入了解这是一件坏事,但是没有简单的方法可以将 windows 应用程序提高 12 倍。
在 windows 中,有什么好的方法可以将我的配置与我的源代码分开吗?
理想情况下,我希望服务器本身能够保存配置(就像 ENV 变量在 heroku 上所做的那样)。
我目前最接近的想法是使用 cli-config 设置 SQL 客户端别名,然后将所有其他数据库存储在数据库中。因此,我将在连接字符串中只包含应用程序的别名 (MYAPP_PRODUCTION)。当然任何不使用数据库的应用程序都不会有这个,所以也有那个。。显然 cliconfg 不允许我输入安全连接信息。
我还考虑过将辅助存储库中的发布配置文件设置为 git 子模块(因此它是 'config' 存储库),但这似乎有点复杂。配置更改与源代码提交相关联? (似乎是 ew)。
我最后的想法是一个配置服务,所以应用程序连接到它并获取它们的配置,但随后保护它需要应用程序提供各种 apikey(不希望应用程序阅读应用程序Bs配置我们),我马上回到我开始的地方。
我决定使用环境变量。
在 windows 下绝对是一件痛苦的事,但使用 IIS,您可以为应用程序池指定 load user profile
。这将创建一个 windows 虚拟帐户,您可以使用 regedit 为其设置环境变量。
它不漂亮,但它有效,它使我们的环境配置远离源代码和构建服务器。
我正在尝试合理化配置文件转换的有用性以简化部署,而不是将连接字符串留在源代码管理中的安全性。目前有 staging/deployment 服务器的发布配置文件,它们具有指向正确数据库的所有配置(连接字符串)。由于使用了像 heroku 这样的 PaaS 产品,我已经深入了解这是一件坏事,但是没有简单的方法可以将 windows 应用程序提高 12 倍。
在 windows 中,有什么好的方法可以将我的配置与我的源代码分开吗?
理想情况下,我希望服务器本身能够保存配置(就像 ENV 变量在 heroku 上所做的那样)。
我目前最接近的想法是使用 cli-config 设置 SQL 客户端别名,然后将所有其他数据库存储在数据库中。因此,我将在连接字符串中只包含应用程序的别名 (MYAPP_PRODUCTION)。当然任何不使用数据库的应用程序都不会有这个,所以也有那个。。显然 cliconfg 不允许我输入安全连接信息。
我还考虑过将辅助存储库中的发布配置文件设置为 git 子模块(因此它是 'config' 存储库),但这似乎有点复杂。配置更改与源代码提交相关联? (似乎是 ew)。
我最后的想法是一个配置服务,所以应用程序连接到它并获取它们的配置,但随后保护它需要应用程序提供各种 apikey(不希望应用程序阅读应用程序Bs配置我们),我马上回到我开始的地方。
我决定使用环境变量。
在 windows 下绝对是一件痛苦的事,但使用 IIS,您可以为应用程序池指定 load user profile
。这将创建一个 windows 虚拟帐户,您可以使用 regedit 为其设置环境变量。
它不漂亮,但它有效,它使我们的环境配置远离源代码和构建服务器。