[英]SQL Server and EF Migration from local to remote database
我正在開發一個實體框架(EF)項目,該項目充當Visual Studio 2013解決方案中另一個項目的補充類庫。 最初,我在客戶端開發系統上有一個模擬本地數據庫,並從那里構建了架構和其他實用程序。 我正在使用的數據適配器使用SQL身份驗證。
一旦我擁有經過驗證的,可以滿足我的要求的穩定版本,便將EF項目合並到解決方案中。 在本地數據庫上工作,一切正常。 然后,我通過以下方法將EF數據庫重新命名為遠程SQL服務器:
App.Config
文件 完成后,我重新運行該解決方案。 EF在框架的首次調用中引發了異常:
類型的未處理的異常“System.Data.Entity.Core.EntityException”發生在EntityFramework.SqlServer.dll
附加信息:基礎提供程序在打開時失敗。
當我檢查內部異常時,我發現了這一點:
登錄失敗。 該登錄名來自不受信任的域,不能與Windows身份驗證一起使用。
此異常使我感到困惑,因為如果您在文章開頭回憶起,我正在使用SQL身份驗證。
我目前未使用任何與ASP.NET相關的東西,我的測試床只是從控制台應用程序執行的,該控制台應用程序在遷移前沒有問題。
我想說的是這是一個管理/環境問題,而不是代碼問題,因為在本地沒有問題,而且我的T-SQL腳本似乎可以在遠程服務器上正常運行,並且可以與之連接。 不幸的是,我的SQL Server技能遠不及我的編碼能力,我無法“證明”它。 所以我發現自己茫然。
在stackoverflow上的優秀人員提供的任何幫助將不勝感激!
附加:
Per DrewJordan:
上下文構造器-
public DatabaseContext(): base("name=DatabaseContext") {}
連接字符串-
connectionString =“ metadata = res:// /Database.csdl|res:// /Database.ssdl|res://*/Database.msl;provider=System.Data.SqlClient;provider連接字符串=” data source = mycompany .com \\ SQLEXPRESS;初始目錄= sandbox2_db;集成安全性= True; MultipleActiveResultSets = True; App = EntityFramework“” providerName =“ System.Data.EntityClient”
您已通過此設置啟用 Windows身份驗證integrated security=True;
將其更改為integrated security=False;
或者您可以完全刪除該字段。
資料來源:在過去的項目中需要2個小時的bug搜索。 這是msdn參考
我發現了問題。 如前所述,我的項目使用SQL身份驗證,但是如果您在連接字符串中注意到沒有SQL用戶ID。
如果未提供用戶ID,則Entity Framework默認將使用本地客戶端用戶ID。
后者在遠程域中是合格的,而本地客戶端則不是,這就是為什么我無法連接的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.