1

我有一個自定義模塊,我一直在開發(在DNN 7.1中),然後使用EVS(擴展驗證系統)進行測試。我只剩下一個錯誤,我不知道如何排除故障。Dnn擴展驗證系統錯誤測試SQL Azure兼容性

以下是錯誤:

ExtensionMessageID: 664647

ExtensionID: 60892

MessageTypeID: 1

MessageID: b25d95e3-06d0-4241-9729-96f85cfddcbf

Message: While testing against 07.01.00 01.00.00.sqldataprovider returned an error: Database 'TestSchema' does not exist.

Rule: PackageVerification.Rules.SQLTestRunner

TESTSCHEMA不是我創造的SqlDatProvider的一部分。另外,我創建的Sql數據提供者在我的本地SQL服務器上執行得很好。

有誰知道這個錯誤來自哪裏。看起來,EVS無法創建執行sql腳本所需的測試數據庫。我希望有更好的文檔來解決EVS系統產生的錯誤/警告。

由於提前

+0

這可能是最好的問題在DNNSoftware.com到達開發人員維護EVS –

回答

2

在SQL安裝腳本中,DNN需要使用兩個令牌{databaseOwner}{objectQualifier}。當EVS測試這些令牌的正確用法時,{databaseOwner}將其替換爲'TestSchema',{objectQualifier}替換爲'TestQualifier'。您的安裝腳本不應該引用數據庫名稱,因爲沒有可替代數據庫名稱的標記。在EVS中,數據庫名稱是由base64編碼一個GUID自動生成的,它們通常看起來像這樣(Ll0YaJ7lDkST9pwjmVubuQ)。

你有'USE'語句或可能是三部分對象引用嗎? (databasename.databaseowner.objectqualifer_objectname)在這個例子中,如果你刪除了第一部分,然後放入了令牌,它看起來像這樣({databaseOwner}{objectQualifier}objectname)

+0

謝謝內森,所以我沒有數據庫名稱或三部分對象引用,但我確實有一個不需要的點之間的objectqualifier和對象名稱。另外,我有一個不包含objectQualifier的約束聲明。 –

1

我利用相對於Azure的腳本兼容性測試EVS時發現的典型錯誤是,當你包括「原發性」在你的CREATE語句存儲指令。確保刪除這些指令,因爲SQL Azure不喜歡它們。