1

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

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

4

2 回答 2

1

[回答您的评论] - 使用 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 中执行某些操作,除非我遗漏了什么这里。

于 2012-05-06T04:53:18.280 回答
1

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

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

于 2012-05-03T16:02:51.733 回答