将数据库部署到 SQL Azure 时出错

Error deploying database to SQL Azure

我正在使用表单身份验证来处理用户并尝试将我的数据库部署到 SQL Azure,但收到此错误消息:

我使用的四个列出的唯一 table 是 aspnet_Membership,我使用的另一个 table 是实现表单身份验证的 aspnet_Users。什么是 TextInRowSize,为什么 SQL Azure 关心它?我是否可以选择修改 aspnet_Membership 以使其兼容?

如果完全删除当前系统并用我自己的系统替换它会更容易,我也同意。

似乎 TextInRowSize 为较旧的 SQL 服务器类型(例如 text 和 ntext)存储大量数据。您需要将其类型更改为 nvarchar(max).

这里有一个link更详细的解释。

http://www.dnnsoftware.com/wiki/unsupported-property-textinrowsize-set-and-is-not-supported-when-used-as-part-of-a-data-package

这看起来像是数据层应用程序框架中的一个错误。我可以建议一种解决方法,将您的数据库迁移到 Azure: 从命令行使用 SqlPackage.exe (https://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx) 提取包含所有 table 数据的 dacpac 文件。然后使用 SqlPackage.exe 将该 dacpac 文件部署到 Azure 中的数据库。提取命令类似于:

C:\>"c:\Program Files\Microsoft SQL Server0\DAC\bin\SqlPackage.exe" /a:extract /scs:"Data Source=yourSqlServer;Integrated Security=true;Initial Catalog=yourDatabase" /tf:C:\temp\mydatabase.dacpac /p:ExtractAllTableData=true

导入命令看起来像这样:

C:\>"c:\Program Files\Microsoft SQL Server0\DAC\bin\SqlPackage.exe" /a:publish /tcs:"Data Source=yourAzureSQLServer.database.windows.net;User Id=yourUserId;Password=yourPassword;Initial Catalog=yourDatabase" /sf:C:\temp\mydatabase.dacpac

这么快的建议,因为我看到你使用的是 V12,它现在应该支持这些属性。

首先确保您至少使用的是 SSMS 2014 SP1,其中包含许多使用 V12 的修复程序。其次确保安装 DacFX 的 2015 年 5 月更新(这是创建 bacpac 文件的程序),您可以在此处安装它:http://www.microsoft.com/en-us/download/details.aspx?id=46898

这应该让您获得 import/export 工作的最佳机会。

这已通过为数据库生成 SQL Azure 脚本并在 Azure 上生成 运行 来解决。这是我解决它的方法:

首先,打开 SQL 服务器,右键单击要传输的数据库,然后单击“任务 > 生成脚本...”

接下来,单击脚本选项面板上的“高级”并找到“数据库引擎类型的脚本”行。 Select“Windows Azure SQL 数据库”并单击“确定”(注意:如果您也有要传输的数据,请从“要传输的数据类型”中选择“模式和数据”脚本”选项)。

继续完成脚本生成对话框的其余部分,记住您保存脚本文件的位置。使用 SQL 服务器或 windowsazure.com 连接到您的数据库服务器。为您的新数据库生成一个新查询,输入由 SQL 服务器生成的脚本并执行。