使用外部数据库部署 Web 应用程序

Posted

技术标签:

【中文标题】使用外部数据库部署 Web 应用程序【英文标题】:Web application deployment with external database 【发布时间】:2013-01-02 19:59:13 【问题描述】:

我有一个使用 SQL Server 数据库的 Web 应用程序(网站)。

我计划创建一些克隆站点,因此希望将数据库放在主项目文件夹之外的自己的文件夹中。

这是我第一次部署 Web 应用程序,所以我有几个问题。

1) 将数据库定位在项目之外是一种可接受的共享数据库的方式吗?

2) 我的本地机器和远程机器之间的连接字符串会有所不同。远程有Sql2008 Web版和我的本地机器SQL Server Express。目录结构也将有所不同,因为它不是虚拟的。这些是我可以做些什么来自动化这个还是纯粹是一个手动的小提琴?

提前致谢。

【问题讨论】:

您使用的是 Visual Studio 2010 还是 2012?如果是这样,您可以在发布配置文件中指定远程连接字符串或创建 web.config 转换。任何一种方式都会在您部署时自动为您进行更改。 @tdykstra - 我使用的是 2010 专业版 【参考方案1】:

    如果您不希望将数据库绑定到某个项目,那么您需要一个可以被其他项目/站点访问的中心位置

    使用存储在中心位置的连接字符串,例如每个 Web 应用程序的 Web.Config。您可以创建多个具有不同名称的连接字符串,指向不同的数据库源,例如远程连接和本地连接。

例子

<add name="ApplicationServices"
     connectionString="Local DB"
     providerName="System.Data.SqlClient" />

<add name="ApplicationServices_2"
         connectionString="Remote DB"
         providerName="System.Data.SqlClient" />

在本地服务器和远程服务器之间切换时,请确保正确的连接名称为“ApplicationServices”,您无需更改代码

【讨论】:

感谢codingbiz的回复。您能否在最后一段中再解释一下您的意思。 我的意思是:如果要使用远程连接,我会从第二个连接字符串中删除 _2 并将其添加到第一个。因此ApplicationServices 总是指向我想要的正确连接。当您在远程和本地机器之间切换时会发生这种情况

以上是关于使用外部数据库部署 Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

azurew网站持续部署 - Web Deploy无法修改目标上的文件“XXX”,因为它已被外部进程锁定

SpringBoot应用部署到外部Tomcat

Oracle 数据库 - 使用外部 Java

SpringBoot应用War包形式部署到外部Tomcat

错误的sqlite3 db.lock在VS中阻止Web部署

使用 Docker 部署 Node 应用