我有一个自定义模块,我一直在开发(在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系统生成的错误/警告。
先谢谢
答案 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不喜欢它们。