【问题标题】:Best practices for maintaining shared hosting websites with ASP.NET and SQL Server?使用 ASP.NET 和 SQL Server 维护共享托管网站的最佳实践?
【发布时间】:2010-09-23 18:41:27
【问题描述】:

在过去的几年里,我一直在与共享托管服务提供商合作开发 PHP/MySQL 网站。日常流程基本上是:

  • 在 Eclipse 中开发,每个文件夹一个网站
  • 通过 FileZilla 上传,每个文件夹一个网站
  • 使用 PHPMyAdmin 创建和管理您的本地和在线数据库,并将数据从一个数据库传输到另一个数据库
  • 为了备份在线数据库,我将数据库表转储到脚本中并复制到本地

我现在想在共享主机提供商上使用带有 SQL Server 2008 的 ASP.NET 构建网站,并且我正在尝试进入这个新范例,希望你们中的一些人可以给我一些基于你的经验,并告诉我我做得不够好:

  • 我已经安装了 Visual Web Developer 2008 Express 和完整版的 Visual Studio 2008,它们似乎都是用于开发 ASP.NET 站点的全功能工具。 就共享主机提供商的网站而言,完整版可以做什么,而快速版无法做到?
  • 我使用 FileZilla 上传我的网站,这似乎工作正常。 您是使用外部 FTP 程序上传网站还是使用上述 IDE 中的“发布”或“FTP 网站”?
  • 我安装了 SQL Server 2008 Management Studio,现在可以向我的在线 SQL Server 数据库发出 SQL 命令(虽然奇怪的是我在左侧列表中看不到我的数据库,但我仍然可以访问它,我假设这是一些我的提供商 www.domainbox.de 的权利问题,但该提供商告诉我改用他们的在线管理器,称为“ASP.NET 企业管理器”,非常简单,但至少有一个“查询框”允许我将查询发送到我的数据库。) 这是 ASP.NET 主机的“ASP.NET 企业管理器”标准还是有其他更好的东西,例如您可以在哪里编辑网格中的数据等?我假设大多数提供商都可以使用 SQL Server Management Studio 管理您的在线 SQL Server 数据库,对吗? (我记得 2001 年在共享托管服务提供商处使用 Enterprise Manager 管理在线 SQL Server 2000 数据库,我需要 10 分钟才能看到左侧的数据库,因为它还列出了其他 800 个客户数据库——希望现在已经解决了)。
  • 如何将在线数据库中的数据备份到本地存储?(目前我必须编写代码将我的数据输出为其他格式,例如 XML 或 SQL 脚本)
  • 在对本地数据库进行大量结构和数据更改后,如何将这些更改和新数据传输到在线数据库?(我必须安装 SSMS 工具 [@ 987654321@ 能够将我的数据转储到脚本中,以便我可以将其恢复到我的在线数据库中)。

所以,虽然我已经完成了大部分工作,但我觉得必须有更好的方法来解决这个问题,更好的提供者,更好的工具等等。想听听一些“最佳实践”的建议任何使用 ASP.NET、SQL Server 和共享主机的人。

【问题讨论】:

    标签: asp.net visual-studio shared-hosting


    【解决方案1】:

    在大多数情况下,您现在所做的将适用于 asp.net 网站。

    对于您的开发环境,我认为您不会受限于使用 Visual Web Developer 2008 express 来完成您想做的事情。这是一个微软页面,它比较了 Visual Studio 2008 的每个版本,包括 Visual Web Developer 2008 Express:Visual Studio 2008 Product Comparison

    为了通过网络部署您的网站,我通常会坚持手动部署。您可以在 Visual Studio 中使用一些自动化的东西,但您的部署往往会慢一些。编译您的应用程序后,它将删除目标网站中的每个文件,并从头开始上传所有文件(我认为是未压缩的)。发生这种情况时,您的整个网站都将关闭。当您手动部署时,您可以只上传更改的文件,或以压缩格式上传所有内容。

    关于 SQL 服务器,许多共享主机服务会让您连接某种本地 SQL 管理工具。但是,以这种方式连接通常会使用大量带宽,因此他们会降低这种方式的允许带宽。这可能是您之前看到的性能问题。如果你能过得去,我会在你的大部分工作中使用他们托管的 SQL 工具,但随后将管理工作室用于它无法处理的任何事情。

    为了备份您的 SQL 服务器,如果您的主机无法让您执行自动备份,那么您将不得不自己做一些事情。我将首先检查它们是否允许您至少运行 SQL 备份命令。这将在本地数据库服务器上生成数据库的 .bak 文件。大多数地方都会在这方面与您合作,因为许多客户都需要这样做。

    要对数据库应用更改,最好的办法是将所有更改编写到一个 sql 脚本中,然后使用远程 SQL 管理工具运行它。这些并不难编写,并且有一些工具可以帮助您。我个人喜欢使用 Visio。它让我可以比较两个数据库(本地和远程),然后生成一个脚本以将所有更改应用于远程数据库。

    祝你好运

    【讨论】:

      【解决方案2】:

      就 VS Express 与 Standard 的功能而言,Standard 仍然是更好的工具。它为您提供更丰富的调试体验、对解决方案/项目依赖项的更广泛支持。

      即使在进行共享托管 b/c 时,这些事情仍然很重要,您绝对需要调试您的应用程序(客户端和服务器端)。您可以使用 Express 充分地做到这一点,但有一些注意事项(不能附加到任意进程,客户端 javascript 调试很痛苦),Standard 使这更容易。

      对于发布/部署 - 我会推荐“Web Depoyment Projects” - 一个可以从 MS 下载的 MSBuild 扩展。这为您提供了很多可定制的方式来构建和部署您的网站 - 这可以包括将其发送到 FTP 站点。如果您曾经使用过 MSBuild 并且喜欢它 - Web 部署项目是使用 ASP.NET 网站扩展您的构建过程的最简单的钩子。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-25
        • 1970-01-01
        • 1970-01-01
        • 2018-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多