我正在使用MVC3,我想知道区分环境的最佳方法是什么?例如,我正在考虑为appSettings添加一个键并引用它,但是在MVC3中有更好的方法吗?我正在开发3种环境:开发,分期和生产。
由于
答案 0 :(得分:3)
我使用配置管理器并将DEBUG,TEST,RELEASE定义为编译时常量。对于我使用Web.config Transformation Syntax for Web Application Project Deployment的配置,强烈建议您使用它们。
例如:
//web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="MyConnectionString"
connectionString="Data Source=SqlServer\Sql2008;
Initial Catalog=MyDB.Dev;
Integrated Security=SSPI"
providerName="System.Data.SqlClient" />
</connectionStrings>
<add key="SomeAppSetting"
value="DebugValue"/>
</configuration>
测试转换:
//web.Test.config
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="MyConnectionString"
connectionString="Data Source=SqlServer\Sql2008;
Initial Catalog=MyDB.Test;
Integrated Security=SSPI"
providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes"
xdt:Locator="Match(name)"/>
</connectionStrings>
<add key="SomeAppSetting"
value="TestValue"
xdt:Transform="SetAttributes"
xdt:Locator="Match(key)"/>
</configuration>
当我将配置从调试更改为测试并重建/部署时,我的应用现在使用我的web.Test.config
中的转换更新。非常有用。
您可以使用Configuration Manager Dialog Box构建不同的配置。您可以随时右键单击web.config并选择添加配置转换,以使Visual Studio 2010自动创建转换配置文件。
答案 1 :(得分:0)
对于MVC UI项目,Web.config可能是个好地方。假设数据层和服务层是分开的,那么在其他项目中也会有条目。
答案 2 :(得分:0)
我建议您查看web config transformation。获得web.config设置的基础后,您将为登台和生产环境创建转换。
如果您需要更多信息,可以在网上找到很多好的例子。