部署 ASP.Net MVC 应用程序

Posted

技术标签:

【中文标题】部署 ASP.Net MVC 应用程序【英文标题】:Deploying ASP.Net MVC application 【发布时间】:2010-05-31 01:24:53 【问题描述】:

我最近已经到了可以将我正在开发的 ASP.net MVC 应用程序部署到生产服务器的阶段。我已经弄清楚了如何发布应用程序 - 我已经在服务器上获得了所有文件,并且可以通过 Internet 访问它们。

但是,我不知道如何部署我的数据库。服务器安装了 SQL Server Management Studio Express,因为使用的数据库是 SQL Server Express 数据库。我已经启动并运行了服务器实例 - 我只是不知道如何将表等添加到数据库中。

我在开发机器上创建了“CREATE TABLE”脚本,但据我所知,Management Studio 没有提供任何实际运行这些脚本的方法。我浏览了所有我能看到的菜单项,但没有一个有效。即使使用“创建新查询...”选项并粘贴脚本也不起作用。

当我尝试“文件->打开...”并选择要运行的脚本时,从工具栏上的下拉列表中设置正确的数据库,然后执行脚本,它抱怨找不到数据库文件(甚至当我将USE [...] 语句设置为正确的路径时。

删除USE [...]语句,脚本报错找不到[dbo].[Invoices]对象;但是,它不应该能够找到它,因为它试图创建它!

tl;dr:确保生产机器上的数据库与我的开发机器上的数据库匹配的最佳方法是什么?

编辑:其中一个脚本在线here。输出(删除前两行后)为here。

【问题讨论】:

您能否向我们展示它尝试创建[dbo].[Invoices] 表的脚本行(以及错误可能来自何处)? 【参考方案1】:

DATE 数据类型是在 SQL Server 2008 中添加的。推测您的生产服务器只运行 SQL Server 2005,这就是为什么您会收到“列、参数或变量 #2:找不到数据类型日期。 "错误。

您必须将数据类型更改为 DATETIME(SQL Server 2005 支持该类型)。

【讨论】:

第二个。该脚本失败,因为它无法创建表......这解释了 a_mod 得到的其余错误。 谢谢,你是对的。这(以及重新运行所有其他脚本以解决依赖关系)运行良好。【参考方案2】:

您是指架构还是所有数据?如果所有数据,我会在您的开发机器上进行备份,然后在您的生产机器上恢复。另外,像你提到的那些错误让我想知道你的脚本是否正确。您是否查看过它们以确保生成了正确类型的脚本?您是否为所有表和对象生成了脚本?

【讨论】:

以上是关于部署 ASP.Net MVC 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2008 中部署 ASP.NET MVC 应用程序

部署 ASP.Net MVC 应用程序最便宜的方法是啥?

我可以在 .net 4 中部署我的 ASP.NET MVC 4 应用程序吗

ASP.NET MVC教程三:ASP.NET MVC部署方式

如何部署 ASP.NET MVC5 应用程序的“发布”版本

在 IIS Express 或其他 WebServer 上部署 ASP.NET MVC 应用程序?