【问题标题】:.NET Application with SQL Server deployed to Azure?将带有 SQL Server 的 .NET 应用程序部署到 Azure?
【发布时间】:2012-03-22 15:18:24
【问题描述】:

我已经查看了与将 .NET 应用程序部署到 Azure 相关的所有问题,但我仍然需要了解一些内容。 我亲眼目睹并测试了自己,Visual Studio 2010 很容易将现有的 .NET 应用程序发布和部署到 Azure - 所有功能和工具都在那里。

但是,我是否仍然能够维护和更新我的原始 .NET 应用程序,然后在必要时发布 Azure 包的更新?我希望持续这样做,以便为我们的客户提供 2 个解决方案 - 公共云解决方案或本地本地 .NET 解决方案。

其他问题是我们将在 SQL 服务器之外运行 .NET 应用程序,并且该应用程序将与外部 Web 服务进行交互。那些持续部署到 Azure 中的难易程度,而不是一次性部署。

编辑:如果上述方法不可行,我只是注意到可以创建完整的 Windows 2008 服务器映像并在 Azure 中创建 VM 角色。有没有人对此有任何cmet,因为我对此知之甚少。这是否可以解决我的问题?

【问题讨论】:

    标签: .net sql-server-2008 azure azure-sql-database azure-vm-role


    【解决方案1】:

    如果您的应用程序不是很复杂,您可以对 windows azure+sql azure 和本地服务器+sql 服务器使用相同的代码。如果您不介意添加完全可以在本地服务器下运行它的 Windows azure 程序集,假设它是一个 Web 应用程序。

    关于 sql azure/sql server,我认为您只需要更改配置中的连接字符串即可让您的代码链接到正确的服务器。

    也许您需要为 azure 和 local 完成一些额外的任务。您可能需要提供一个文件系统接口,该接口可以根据配置从 blob 或本地磁盘读取/写入文件。因此,在您的业务代码中,您不会介意在哪里以及如何处理文件问题。也许您还需要一个配置界面来从 web.config 或您的 cscfg 文件中读取设置。但是如果你把所有的配置都放到数据库里就更好了。

    基本上,我认为 azure 和本地都使用一个代码库并非不可能。通过引入一些接口来隔离azure相关的操作,我就以这种方式完成了一个项目。只需确保您可以为 azure 和本地之间的所有不同配置/注入。

    HTH

    【讨论】:

    • 谢谢 - 非常有帮助 - 更近一步。在 .NET 中,一旦我创建了 Azure 部署,似乎我只能在 Azure 模拟器中运行该解决方案,它不会让我在 IIS 上运行它。这是我可以轻松改变的吗?你知道吗?
    • 如果是 web 角色,你可以将启动应用程序设置为你的 web 项目(不是 azure 项目),然后它将在你的 IIS 或开发主机下运行,就像你有一个普通的 ASP.NET 我们应用程序。但是,如果您的项目在 azure 下使用某些东西,例如存储、本地资源或 azure 配置,那么它将失败。这就是为什么我提到你最好使用一些接口来隔离。但它是一个工人角色,它必须在 azure 开发模拟器下运行。
    【解决方案2】:

    您可以随心所欲地部署到 Azure。处理它的最佳方法是部署到 Staging,然后一旦启动并运行,在门户中进行 VIP 交换。然后,您可以在 Production 中运行新包,并且可以停止/删除在 Staging 中运行的旧包。

    对于 Azure 中的 SQL Server,您应该考虑使用 SQL Azure 或使用 Azure Connect 与本地运行的 SQL Server 进行通信。或者您也可以使用服务总线。

    【讨论】:

    • 但是我可以同时维护我的 .net 应用程序,然后将更新推送到 Azure。问题是我想对数据库做同样的事情 - 即我的 .net 应用程序应该与 SQL 服务器通信,而我的 azure 应用程序应该与 sql azure 通信。
    【解决方案3】:

    我觉得这是你真正的问题:

    但是我仍然能够维护和更新我原来的 .NET 应用程序,然后在必要时发布对 Azure 的更新 包裹?我想不断地这样做,作为一种手段 为我们的客户提供 2 个解决方案 - 公共云解决方案或 本地本地 .NET 解决方案。

    这并不特定于 Windows azure。你想要的是一个源代码控制。您可以使用 TFS 之类的东西来创建相同代码的不同副本。然后,您可以拥有两个项目的副本以及版本历史记录。使用源代码管理有很多 许多 的好处,我强烈建议您考虑在您从事的每个项目中使用源代码管理。

    【讨论】:

    • 我同意源代码控制很重要,我将在项目中使用它。但我的全部观点是,我只想使用 .NET 和 Azure 的部署包来维护一个项目,而不必弄乱源代码。我希望 .NET 专家可以让我知道这是否仍然可行,以及这如何影响与 2 个不同数据库(Azure 和 SQL 服务器)的连接。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    相关资源
    最近更新 更多