一个具有不同 web.config 的 Web 角色中的多个站点实例



我想使用同一应用的多个物理站点将我的 MVC3 应用部署到 Azure。很高兴我可以使用ServiceDefinition.csdef中的sites元素来做到这一点。

但我希望每个站点都连接到不同的数据库。连接字符串位于 web.config 中。除了登录到 VM 并手动更改它之外,是否有一种简单的方法可以做到这一点?

您可以注册一个启动任务,以便在 VM 启动时修改/移动 web.config 文件。它有点乱,但比手工做更干净!

http://msdn.microsoft.com/en-us/library/windowsazure/gg456327.aspx

[回答您的评论] - 使用Windows Azure(实际上使用任何PaaS解决方案( 第一个经验法则是,当角色启动时,所有配置都应该准备就绪,第二个经验法则是,不应通过 RDP 访问在 VM 中执行任何操作,因为更改不会保留。由于此需要配置,要么部署在 Azure 包中,要么直接从启动任务修改。

[回答您的问题]在 Windows Azure 中,您可以在一个 Web 角色中运行多个站点,但是它们都应该共享相同的主 web.config,因为多个站点在一个 Web 角色中运行。以下是您可以做到这一点的方法:http://msdn.microsoft.com/en-us/library/windowsazure/gg433110.aspx

现在,由于您的要求是拥有多个数据库,因此您可以在 web.config 中添加多个数据库连接字符串,如下所示: $

 <ConnectionString>
 <Add name="DB1" connectionString="Data Source=DS1.........."/>
 <Add name="DB2" connectionString="Data Source=DS2.........."/>
 </ConnectionString>

完成上述操作后,可以在 ASP.NET 代码中枚举这些连接字符串,并用于特定站点,如给定示例中所述:

http://www.dotnetspark.com/kb/780-how-to-use-multiple-database-connection.aspx

最后,您可以在开发过程中使用您的 Web 角色添加多个站点,也可以在 web.config 中指定特定的数据库连接,因此我认为根本不需要使用启动任务或在 VM 中执行某些操作,除非我在这里缺少一些东西。

最新更新