c# - ASP.NET MVC - 如何首先使用实体​​框架模型/数据库部署到 Azure?

标签 c# asp.net asp.net-mvc entity-framework azure

因此,我首先使用实体​​框架数据库构建了我的应用程序。我的数据库只有 2 个表,非常小。

我在 YT 上看过一些有关部署到 Azure 的视频,但看起来它们都使用 CodeFirst 方法,然后在包管理器上使用启用迁移,然后使用复选框发布应用程序来执行代码迁移。

但是由于我使用 Database First 构建了我的应用程序,所以我无法使用此功能。启用迁移功能仅适用于 Code First。

那么,我该怎么做才能将我的数据库放在 Azure 上并部署我的应用程序?

编辑解决方案:

在 SQL Server 管理工具上,如果单击数据库上的右键并转到“任务”,您将找到以下选项“在 Azure SQL Server 数据库上植入数据库”。

您只需指定云中服务器的实例、登录名和密码,然后单击“下一步”,它就会为您部署数据库。 重要提示:首先,您需要与本地计算机和 Azure Sql Server 建立连接。为此,您需要将计算机的 IP 地址插入云服务器的防火墙定义中。此链接对此进行了很好的解释:https://learn.microsoft.com/en-us/aspnet/mvc/overview/getting-started/database-first-development/publish-to-azure

然后,迁移数据库后,您只需获取在 AzureCloud 上插入的新数据库的 ConnectionString,然后转到 Visual Studio 上的应用程序,发布,更新连接字符串并部署。

最佳答案

按照以下步骤操作即可:

  1. 右键单击该项目并选择“发布”。

  2. 选择 Microsoft Azure 网站。

  3. 选择“新建”以创建新的网络应用程序。(如果未登录,请输入您的凭据)

  4. 填写必要的详细信息并为数据库创建新服务器,并为此新数据库服务器提供用户名和密码。完成后,单击“创建”。

  5. 保持值不变,这些是您的人脉值。

  6. 单击数据库连接旁边的省略号 (...),记下数据库服务器和数据库的名称。

  7. 单击“确定”,然后在“发布 Web”窗口中单击“下一步”以查看预览。单击“发布”。

发布后,该网站会立即在网络浏览器中启动。您的网站已部署,但是,您将收到错误,因为您的表尚未发布。

将数据库发布到 SQL Azure

  • 在发布数据库之前,您必须确保您的本地计算机可以连接到数据库服务器。数据库服务器的防火墙限制哪些计算机可以连接到数据库。您需要将计算机的IP地址添加到防火墙允许的IP地址中。
  • 通过 Azure 门户登录您的 Azure 帐户。
  • 选择您的新数据库,然后选择“管理”。
  • 您必须配置数据库服务器以允许来自您的计算机的连接。当您选择“管理”时,系统会要求您添加数据库服务器允许的当前 IP 地址。选择"is"。
  • 您在上一步中添加的 IP 地址可能不是您需要配置连接的唯一 IP 地址。您可以尝试登录数据库以查看连接是否已正确设置。提供您之前创建的用户名和密码。

如果您收到错误消息,则需要添加另一个 IP 地址。单击错误消息可查看有关错误的更多详细信息。在详细信息中,您将看到需要添加的 IP 地址。记下此 IP 地址。

  • 关闭此登录窗口,然后返回 Azure 门户。导航到您的数据库的仪表板。单击“管理允许的 IP 地址”。

  • 您现在必须添加错误消息中的 IP 地址。要么更改允许的 IP 地址范围以包含错误消息中的地址,要么将该 IP 地址添加为单独的条目。

  • 保存对允许的 IP 地址的更改。单击“管理”,然后尝试再次登录数据库。您可能需要等待几分钟,才能为防火墙正确配置允许的 IP 地址。当您可以成功登录数据库时,您就完成了与数据库的连接设置。

您可以将此管理窗口保持打开状态,因为您很快就会检查数据库部署的结果。

  • 返回到您的数据库项目。右键单击该项目并选择“发布”。

  • 在“发布数据库”窗口中,选择“编辑”。

  • 提供数据库服务器的名称以及服务器的身份验证凭据。提供凭据后,从可用数据库列表中选择您创建的数据库。默认情况下,Visual Studio 将数据库字段的名称设置为您的项目名称,该名称可能与您创建的数据库不同。单击“确定”。单击“发布”。

你就完成了

learn.microsoft.com has good documentation

关于c# - ASP.NET MVC - 如何首先使用实体​​框架模型/数据库部署到 Azure?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45025295/

相关文章:

asp.net-mvc - 有条件的 ASP.NET MVC Razor 部分

c# - 如何在本地调试由EventGrid触发的Azure Function?

c# - Asp.Net MVC : How do I get Html. ActionLink 正确呈现整数值?

c# - 这个表达有什么问题?无法将类型 'int' 隐式转换为 'byte'

c# - 如何通过在我的 Asp.net MVC 项目中发布特定的 Url 来检查网站内容是否抄袭?

c# - 如何超时 "A network-related or instance-specific error occurred while establishing a connection to SQL Server"错误

c# - 单击事件后按钮数组消失

asp.net-mvc - 创建数字为 1 到 30 的下拉列表 mvc

c# - 如何从 iPhone 获取 pdf 到 .net C# 网站?

asp.net-mvc - ASP.NET MVC RequireHttps 仅在生产中