在ASP.Net上使用Entity Framework备份数据库

问题描述

我有一个有趣的案例。我无法访问Azure订阅。但是,我仍然有权发布ASP.Net应用程序,因为我配置了发布配置文件,该配置文件仍然有效。请注意,这并不违法-有关VS订阅的公司内部政策;可以这么说,该应用程序是我的,由我编写,由我维护,等等。

我需要创建数据库的备份,但是我唯一能做的就是发布应用程序。应用程序显然在设置中嵌入了连接字符串,但是由于防火墙设置(仅适用于Azure服务),我无法连接到数据库。因此,我需要找到一种通过控制器和操作来转储数据的方法。

到目前为止,我设法手动转储了大多数表(例如public partial class ChildComponent : ParentComponent { protected override void BuildRenderTree(RenderTreeBuilder builder) { builder.OpenComponent<ParentComponent>(0); builder.AddAttribute(1,"ChildContent",(RenderFragment)((builder2) => { builder2.OpenElement(1,"div"); builder2.AddAttribute(2,"id","ChildComponent"); builder2.AddContent(3,ChildContent); builder2.CloseElement(); } )); builder.CloseComponent(); } } ),然后将结果输出到视图中。但是,这不会导出内部的ASP.Net表,我无法直接访问这些表(例如,用户/角色声明等)

请记住,我们在谈论的是Azure SQL,它不同于常规的SQL Server。

如何备份数据库,以便可以将应用程序迁移到其他订阅?

解决方法

如果您还可以发布您的Web应用程序。您可以创建一个API函数并调用它。类似于:https://yourwebsite.azurewebsites.net/backup/start

您可以创建PROCEDURE,然后运行它以生成.bak文件到Blob( 前提是您需要了解与Blob相关的信息。)

示例代码:

C# SQL Server backup of a remote database to the remote default backup location without direct access to the remote location?

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...