问题描述
我有一个有趣的案例。我无法访问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相关的信息。)
示例代码: