這個問題不有關SQL Server「3xpr355」(混淆 引號是由設計;它應防止以後的搜索創下 死衚衕,正如我所做的那樣)。代碼優先MVC 4使用實體框架和SQL Server 2012
我使用代碼優先和Entity Framework開發一個MVC 4應用程序。 SQL Server,IIS和Visual Studio都在同一臺機器上運行。
我最初使用的是SQL Server「3xpr355」,但要求將它放在暴露於互聯網的ISS機器上,使它能夠連接到一個功能齊全的SQL Server。我已經設置了刪除並重新創建數據庫的應用程序每當模型更改:
public class XyzDBContext : DbContext
{
public XyzDBContext()
: base("XyzDBContext")
{
Database.SetInitializer<XyzDBContext>(new DropCreateDatabaseIfModelChanges<XyzDBContext>());
}
public DbSet<XyzModel> XyzModels{ get; set; }
}
這裏是我的連接字符串:
<connectionStrings>
<add
name="DefaultConnection"
connectionString="Data Source=.;Initial Catalog=aspnet-Xyz-20150131102119;Integrated Security=SSPI"
providerName="System.Data.SqlClient" />
<add
name="XyzDBContext"
connectionString="Data Source=.;Initial Catalog=XyzDatabase;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>
期望:
- 執行使用XyzDBContext的應用程序部分應導致創建數據庫「XyzDatabase」(如有必要)。
- 執行使用成員資格提供程序的應用程序部分應導致創建數據庫「aspnet-Xyz-20150131102119」(如有必要)。
實際結果:
- 拋出異常:當從數據庫中獲取信息提供商System.Data.ProviderIncompatibleException「發生 錯誤 這可以通過實體框架使用了不正確造成的。連接 string。檢查內部例外的詳細信息並確保 連接字符串是正確的。「
- 內部異常: System.Data.ProviderIncompatibleException「提供者沒有 返回一個ProviderManifestToken字符串。」
- 內部異常: System.Data.SqlClient.SqlException「用戶登錄失敗 'DOMAIN \ SERVER $'。」
措施:
- 我一直在使用SQL Server Management Studio中添加一個登錄 「域\服務器$」 用戶嘗試,但登錄總是失敗。
- 我已經研究並嘗試了很多連接字符串的排列,除了我發現的幾個例子都用於SQL Server「3xpr355」之外。
這是我的答案!很高興我能幫上忙 – Fourat 2015-02-12 16:43:15