我想使用ASP.NET應用程序服務,但將其配置爲使用其他模式。我使用的是this URL中列出的aspnet_regsql.exe工具,默認情況下,該工具創建表並使用dbo架構存儲特效。將ASP.NET應用程序服務配置爲使用「dbo」以外的模式
所以我想我可以從現有的應用程序對象中生成一個數據庫腳本,然後用[示例]查找並替換[dbo],然後刪除原始的應用程序服務對象並執行編輯的腳本以獲得結果我想了。只會採取一個微笑。
但在閱讀this斯科特顧博客帖子中有評論部分的人已經嘗試過這種方法,並發現它倒下了。斯科特通過請求關於這個問題的電子郵件回覆,我認爲這是對問題的承認,但我沒有看到任何解決方案。
所以我在數據建模階段,我真的不想在賽道上出現很多麻煩。有沒有人知道這是否已經解決,或者如果在'dbo'模式問題的查找和替換方法中繼續存在任何障礙?
UPDATE:
,所以我沒有連得「很遠走下賽場」上倒下了。顯然,配置數據庫非常容易,因此所有對象都可以使用新模式正確引用對方,但是它的顯示所有支持代碼都已硬連接「dbo」引用......而不是使用連接用戶帳戶的默認模式。
只需嘗試使用VS Studio> Project | ASP.NET配置工具足以打破它。修改web配置指向新的數據庫與調整後的模式,然後進入配置工具的安全選項卡,我得到一個錯誤「無法找到存儲過程'dbo.aspnet_CheckSchemaVersion'」。所以會出現「DBO」已被烤:(
更新2:
所以我同義詞已經添加爲接受的答案概述和它的作品,但我確實有。在爲了得到它的滾動進入4個記錄到數據庫採取了全程30秒)
在此之前我得到了以下錯誤:
The 'System.Web.Security.SqlMembershipProvider' requires a database schema compatible with schema version '1'
所以我不得不從aspnet_Applications表複製一個應用程序行。然後從aspnet_SchemaVersions表中選擇3行。我從默認的dbo模式安裝中獲得了這些信息。
這是aspnet_Applications記錄(蒙面 'XXXX' 的唯一性 - 你必須讓自己的密鑰):
/ /xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx NULL
這些是aspnet_SchemaVersions記錄:
common 1 True
membership 1 True
role manager 1 True
它現在所有的作品。如果我將來遇到任何問題,我會更新這篇文章。