【问题标题】:Publishing a MVC3 application with SQL Server 2008 Database to IIS 7将带有 SQL Server 2008 数据库的 MVC3 应用程序发布到 IIS 7
【发布时间】:2012-05-11 14:54:25
【问题描述】:

如果这是一个愚蠢的问题,请原谅我,我知道以前有类似的问题,但我无法让任何事情对我有用。

我使用 SQL Server 2008 数据库在 c# 中开发了一个非常简单的 mvc3 应用程序。我需要将它发布到另一台运行 iis7 的 PC 上。我也需要数据库结构和内容来配合应用程序。

谁能一步一步告诉我该怎么做?

提前致谢

【问题讨论】:

  • 我每周做两次。你能请我到目前为止你做了什么吗?我想我可以帮助你。

标签: c# asp.net-mvc-3 sql-server-2008 iis-7


【解决方案1】:

如果我错了,请纠正我,但我会假设

我需要数据库结构和内容以配合应用程序 也是。

意味着您需要将数据库结构和数据库的当前内容部署到另一台电脑。

根据您可以使用的工具,这里有几个选项:

  1. 在 Sql Server Management Studio (http://msdn.microsoft.com/en-us/library/ms188664(v=sql.100).aspx) 中使用复制数据库任务

  2. 如果您拥有 Visual Studio 2010 Premium 或 Ultimate,则“数据”菜单下有用于比较和同步数据库的任务 (http://msdn.microsoft.com/en-us/library/aa833435.aspx#synchronize)

  3. 如果您有 Visual Studio 2k8 数据库,则有类似的功能,但我从未使用过 (http://msdn.microsoft.com/en-us/library/aa833435(v=vs.90).aspx )

  4. 使用 sqlcmd.exe 创建数据库的转储,移动这些转储,然后使用 sqlcmd 将它们恢复到新环境([http://msdn.microsoft.com/en-us/library/ms180944( v=sql.100).aspx][4],查看维护部分。你只需要做一个备份,然后制作一个类似的.sql来使用RESTORE命令。http://msdn.microsoft.com/ en-us/library/ms186858(v=sql.100).aspx)

如果您要在多台计算机上经常执行此操作,并且您的大部分内容都是静态的,请查看创建数据库项目是否会对您有所帮助。 (http://msdn.microsoft.com/en-us/library/84b1se47.aspx)

【讨论】:

  • 谢谢,我已经使用了 SSMS 中的备份和恢复任务来完成它。
【解决方案2】:

如果它是一次性的,那么有一种快速简单的方法可以做到这一点,并且有一种长期可编程的方式。

快速简单:将您的应用程序文件复制到新服务器的 web 目录中,然后备份您的数据库,然后在新服务器上恢复它

长期:您可以查看 msdeploy 来推动您进行更改,并查看 FluidMigrations 或 MS 数据项目之类的东西来进行数据库更改。

【讨论】:

  • 快速简单的方法在这种情况下是理想的,目前。我假设您建议的长期解决方案能够应对仅发布对数据库结构的更改而不影响数据?
【解决方案3】:

好的,我现在使用以下步骤使其工作:

  1. 在 Visual Studio 的解决方案资源管理器中右键单击项目名称,然后选择发布,选择 File System 作为发布方法并指定目标位置(站点根目录或您可以找到的位置以便稍后移动文件) .
  2. 打开sql server management studio,找到你的db,右键,任务,备份。设置一个目的地(在某个容易找到的地方)并点击确定(灵感来自 @BobTheJanitor 和 @theunderscoregreg)。
  3. 在 iis 中设置一个新网站,在任何机器上托管该网站。
  4. 在新站点的根目录中,我添加了一个名为 app 的文件夹,我将步骤 1 生成的所有文件都放入其中(我是通过 ftp 完成的,但我想你如何获得它们并不重要) .
  5. 在 iis 的连接侧边栏中找到您的新站点,然后右键单击 app 文件夹并选择转换为应用程序。
  6. 再次在连接侧边栏中单击Application Pools 并选择分配给您的新应用程序的任何一个,右键单击它并选择高级设置。将 .NET 版本设置为 4.0 并在进程模型下将标识设置为 LocalSystem(找到此位 here
  7. 在新主机上的 SSMS 中,右键单击数据库并选择 Restore Database...。在To database: 字段中输入与第一台机器上的数据库相同的名称。从设备中选择并选择您在第 2 步中创建的备份文件(我必须将文件类型更改为所有文件才能看到该文件),然后单击确定。
  8. 这可能特定于我的情况,不确定。我使用ADO.NET Entity Data Model 项目项来创建.edmx 模型,该模型将连接字符串添加到名为somethingEntities 的Web.Config 文件中。这个连接字符串似乎是特定于电脑的,因为字符串的Source= 部分指的是特定的机器,所以我不得不编辑它。再次在 iis 中,选择您的站点,然后选择应用程序文件夹。打开 ASP.NET 部分中的 connection strings 项。找到 somethingEntities 连接字符串并双击它,您现在应该有一个对话框窗口可以让您编辑它。我所要做的就是将字符串中的电脑名称更改为新主机的名称。

我的新网站正在运行!我远非专家,并意识到我在这里所做的可能不是最佳实践,但它确实有效。如果有人可以提出改进建议或更好的策略,我将更新此答案或接受更好的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    相关资源
    最近更新 更多