1

我創建了一個MVC 4項目,該項目使用EF5 Code First進行遷移。 因爲我是這個主題的新手,我使用了以下article發佈到IIS的EF5代碼首先遷移問題

現在開發完成了,我想發佈到IIS(我使用FTP或Web部署包)。所以在發佈之前,我將連接字符串更改爲正確的數據庫服務器。 但是,在發佈網站後,我在訪問使用數據庫的頁面時遇到異常。例外是指他無法連接到數據庫的事實。

由於這些問題,我決定在另一個數據庫服務器上本地嘗試它,而不是默認的「(LocalDB)\ v11.0」。順便說一句:「(LocalDB)\ v11.0」的作品就像一個魅力... 調試時,我得到了一個更好的看錯誤。 以下是錯誤的圖像: Picture of the Error

我已經嘗試過:

  • 通過執行生成SQL腳本「更新,數據庫-Script -SourceMigration:$ InitialDatabase」在包經理控制檯。在dbserver上運行這個腳本來創建數據庫之後。創建了表格 ,但錯誤仍然存​​在。
  • 我改變了我的ConnectionString各種組合沒有 結果
  • 我已經用於在國際空間站的應用程序池自定義用戶,並給該用戶完全權限到數據庫服務器和數據庫。

這裏是我的web.config中最重要的部分:

<connectionStrings> 
    <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=LOCALHOST\MSSQLSERVER;Initial Catalog=ProjectX;Integrated Security=TRUE;MultipleActiveResultSets=True" /> 
</connectionStrings> 

而且

<entityFramework> 
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
    <parameters> 
    <parameter value="Data Source=LOCALHOST\MSSQLSERVER; Integrated Security=True; MultipleActiveResultSets=True" /> 
    </parameters> 
</defaultConnectionFactory> 
</entityFramework> 

我DBCcontext類的構造看起來像

public DBContext(): base("DefaultConnection") 
{ 
} 

我想我錯過了一些東西,這是我第一次使用EF Code First遷移。 這個問題真的讓我發瘋。我沒有想法。

+0

什麼是內部例外? – Moho

+0

我現在無法訪問該項目。我將在今天晚些時候粘貼它們。但是這是關於EF代碼優先的ProviderManifestToken的東西... – Beejee

回答

0

剛發現問題是由連接字符串引起的。 字符串不正確,看起來像你,如果你有一個默認的SQL Server,你只需要使用 「數據源= LOCALHOST」。

我想是因爲我那一天所有的問題與部署我忽略了簡單的部分。 Yust讓當你有問題,像我一樣相信你下面的東西都是真實的:

  1. 您的ConnectionString具有相同的名稱作爲您的DbContext。另一個sollution可以做到像我一樣,添加的ConnectionString名基地:

    公衆的DbContext():基地( 「DefaultConnection」) { }

  2. 如果你也有defaultconnectionfactory集。確保還要在那裏更新數據源。這是我掙扎的問題之一。我沒有檢查下我的web.config的...

如果問題仍然存在,您可以使用EF分析器來看看當你的網站的應用程序正在訪問DB ConnectionString中。