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

时间:2015-06-17 03:00:43

标签: sql-server azure forms-authentication azure-sql-database

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

azure error

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

如果完全删除当前系统并将其替换为我自己的系统会更容易,我也很好。

4 个答案:

答案 0 :(得分:0)

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

C:\>"c:\Program Files\Microsoft SQL Server\120\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 Server\120\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

答案 1 :(得分:0)

如此快速的建议,因为我看到你正在使用V12,现在应该支持这些属性。

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

这可以让您获得最佳的导入/导出工作机会。

答案 2 :(得分:0)

这是通过为数据库生成SQL Azure脚本并在Azure上运行它来解决的。以下是我如何解决它:

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

enter image description here

接下来,点击"高级"在脚本选项面板上,找到数据库引擎类型的行"脚本。"选择" Windows Azure SQL数据库"然后单击“确定”(注意:如果您还有要传输的数据,请选择"架构和数据"从"数据类型到脚本"选项)。

enter image description here

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

答案 3 :(得分:-2)

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

以下是更详细说明的链接。

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