我之前的大多数Web应用程序都是使用金字塔(python)框架构建的。使用金字塔,可以在开发或生产模式下运行应用程序。这是通过提供production.ini或development.ini设置文件的位置作为应用程序的启动参数之一来实现的。
此文件包含与日志记录级别,错误报告和数据库连接相关的设置。 .net世界中这些文件的等价物似乎是web.config文件。我假设我可以创建不同的执行环境,只需创建一个新的web.config,将其重命名为适当的东西,然后重新启动应用程序。
我的问题是,如何让我的应用程序定位正确的* .config文件(假设称之为production.config和development.config)?
答案 0 :(得分:1)
您可能需要查看MSDeploy。我在相似的情况下使用它,这有助于我建立一个单独的参数文件(无论是XML,文件路径,文本文件等等),还有多个参数文件[你可以阅读有关declareParam和setParam here。
在不了解你的结构太多的情况下,你基本上会对此产生影响。
msdeploy -verb:sync -source:contentPath=c:\pathtosite\root -dest:package=c:\package.zip -declareParamFile=c:\packageparameters.xml"
为每个环境创建关联的参数文件,例如
development.xml
staging.xml
production.xml
(Here是参数文件设置的一个很好的解释)
然后对于您的部署,您将拥有某些内容(取决于您要使用的提供程序)
msdeploy -verb:sync -source:package=c:\package.zip -dest:contentPath=c:\inetpub\production -setParamFile=c:\<environment>.xml
提供商数量非常广泛。内容路径只是一个简单的示例,但您可以直接从IIS,IIS等,非常强大。
答案 1 :(得分:0)
我无法指定另一个web.config文件。但是,从.NET 4.0开始,您可以使用称为web.config转换的东西,它可以在构建时修改基本web.config。您可以拥有一个Web.Debug.Config和Web.Release.Config,它将根据您正在使用的构建配置进行应用。请记住,这些不是普通的web.config文件,而是修改基本web.config的转换文件。
有关所涉及基本概念的更多信息和演练,请参阅here on MSDN。 web.config转换文件的基本示例是this,它修改连接字符串以使用不同的连接字符串进行发布构建:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="MyDB" connectionString="ReleaseSQLServer"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
</configuration>