Dnn扩展验证系统测试SQL Azure兼容性时出错

时间:2014-04-09 21:44:50

标签: dotnetnuke azure-sql-database dotnetnuke-module dotnetnuke-7

我有一个自定义模块,我一直在开发(在DNN 7.1中),然后使用EVS(扩展验证系统)进行测试。我只剩下一个错误,我不确定如何解决问题。

这是错误:

  

ExtensionMessageID:664647

     

ExtensionID:60892

     

MessageTypeID:1

     

消息ID:b25d95e3-06d0-4241-9729-96f85cfddcbf

     

消息:在07.01.00 01.00.00.sqldataprovider的测试中   返回错误:数据库'TestSchema'不存在。

     

规则:PackageVerification.Rules.SQLTestRunner

TestSchema不是我创建的SqlDatProvider的一部分。此外,我创建的Sql数据提供程序在我的本地SQL服务器上执行正常。

有谁知道这个错误的来源。看起来EVS无法创建执行sql脚本所需的测试数据库。我希望有更好的文档来记录EVS系统生成的错误/警告。

先谢谢

2 个答案:

答案 0 :(得分:2)

在SQL安装脚本中,DNN需要使用两个令牌{databaseOwner}{objectQualifier}。当EVS测试这些令牌的正确使用时,{databaseOwner}将其替换为'TestSchema'并将{objectQualifier}替换为'TestQualifier'。您的安装脚本永远不应该引用数据库名称,因为没有可以替换数据库名称的令牌。在EVS中,数据库名称由base64编码GUID自动生成,它们通常看起来像这样(Ll0YaJ7lDkST9pwjmVubuQ)。

你是否有一个'USE'语句或可能是一个三部分对象引用?(databasename.databaseowner.objectqualifer_objectname)在该示例中,如果你删除了第一部分然后放入标记,它将看起来像({databaseOwner}{objectQualifier}objectname)

答案 1 :(得分:1)

我在使用EVS测试时发现的与Azure脚本兼容性相关的典型错误是在CREATE语句中包含“WITH PRIMARY”存储指令时。确保删除这些指令,因为SQL Azure不喜欢它们。