2016-05-16 160 views
8

我已經發布我的WCF項目到服務器上,我也發佈了一個MVC應用程序到使用WCF服務的同一個盒子上。我如何解決實體框架提供程序異常

當我的MVC應用程序試圖登錄,這將使用WCF服務,但我得到的瀏覽器這個例外,

實體框架提供程序類型 「System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer'在應用程序配置文件 中註冊了ADO.NET提供程序,其中不變的名稱爲'System.Data.SqlClient' 無法加載。確保使用裝配限定名稱 ,並且裝配對於運行的應用程序可用。

這是一個實體框架例外,但我相信,因爲我的項目已經引用EF在開發環境中部署的服務項目之後,DLL文件應包含EF參考還,但我不知道爲什麼我收到這個錯誤。

我可以看到這個消息,因爲我打開includeExceptionDetailInFaults="True"

+1

從NuGet程序包管理器安裝導致未正確安裝在項目中。再試一次PM> Install-Package EntityFramework –

+1

正如我所提到的,這不在我的本地機器上,這是在我沒有安裝visual studio的服務器上。這是一個發佈的應用程序拋出這個錯誤,它在我的本地機器上正常工作。 @NazmulHasan –

回答

11

@FranciscoGoldenstein說!您不需要在您的控制檯應用程序中安裝實體框架或其他任何東西,只需要添加對程序集EntityFramework.SqlServer.dll的引用即可。您可以將此程序集從使用實體框架的類庫項目複製到LIB文件夾並添加對其的引用。

總結:

  • 類庫應用:
    • 安裝實體框架
    • 寫你的數據層代碼
    • app.config文件擁有所有相關實體框架除了配置連接字符串。
  • 創建控制檯,網絡或桌面應用程序:
    • 增加提及的第一個項目。
    • 添加對EntityFramework.SqlServer.dll的引用。
    • 的app.config/web.config中具有連接字符串(請記住,配置條目的名稱必須是相同的DbContext類的名稱。

這是爲我工作!我希望它能幫助。

也嘗試此鏈接Entity Framework Provider type could not be loaded?

+0

你是對的,出於某種原因,當我出於某種原因發佈它時,構建並未添加該庫。 –

+1

EntityFramework.SqlServer.dll參考幫助了我 –

1

卸載實體框架的NuGet,只是重新安裝,爲我工作。

0

我也有過類似的問題

我的問題是通過以下操作解決:

enter image description here

enter image description here

相關問題