2012-03-08 24 views
2

編輯:我的問題歸結爲,我需要採取哪些步驟來構建使用SQL Server CE的Web應用程序在中等信任?要使我的SQL Server CE在我的虛擬主機上工作,需要採取的所有步驟

在我發佈該文件之前,我已將我的桌面版本複製到我的bin目錄中,但我確定還有更多步驟需要執行,因爲這樣做無效。

錯誤:在AD​​O.NET提供程序和SQL Server Compact的本機二進制文件之間檢測到可能的文件版本不匹配,這可能導致錯誤的功能。這可能是由於存在多個不同版本的SQL Server Compact實例或者由於錯誤的二進制文件與SQL Server Compact二進制文件具有相同的名稱。請安裝匹配版本的SQL Server Compact二進制文件。

Web應用程序:MVC 3建有VS 2010

一切正常,我的開發機器上。

閱讀this post後,我擺脫了我的引用,並將SqlServerCE.dll和SqlServerCe.Entity.dll複製到我的bin目錄中。

即從

改變了錯誤無法加載文件或程序集「System.Data.SqlServerCe,版本= 4.0.0.0,文化=中性公鑰= 89845dcd8080cc91」或它的一個依賴。定位的程序集清單定義與程序集引用不匹配。 (來自HRESULT的例外:0x80131040)

到當前的一個。

我從我的桌面文件夾複製SqlServerCE.dll,所以我可以在中等信任下運行。

從我的Web.config文件:

`  <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" /> 
     <assemblyIdentity name="System.Data.SqlServerCe" 
          publicKeyToken="89845dcd8080cc91" culture="neutral"/> 
     <bindingRedirect oldVersion="4.0.0.0-4.0.0.1" newVersion="4.0.0.1"/> 

     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <system.data> 
    <DbProviderFactories> 
     <remove invariant="System.Data.SqlServerCe.4.0" /> 
     <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> 
    </DbProviderFactories>` 

編輯:謝謝大家。

我的軟件包目錄中有SqlServerCompact.4.0.8852.1。

我從我的bin目錄中刪除了SqlServerCE.dll和SqlServerCe.Entity.dll,因爲它們在我的包中。我複製機二進制文件到我的斌(它們被包含在項目中),但我仍然得到這個消息:

Possible file version mismatch detected between ADO.NET Provider and native binaries of SQL Server Compact which could result in an incorrect functionality. This could be due to the presence of multiple instances of SQL Server Compact of different versions or due to wrong binaries with same name as SQL Server Compact binaries. Please install SQL Server Compact binaries of matching version.

我無法爲我有實體的新版本使用你的建議NuGet包框架,它回滾了安裝。

如果任何人都可以推薦可以在共享託管服務器上以中等信任方式工作的SQL Server CE安裝程序,我準備好重新開始一個新項目。

這是我創建我的項目時一直在做的事情(並且不起作用)。

a。安裝包SqlServerCompact b。安裝包系統.Web.Providers c。安裝包實體框架 d。安裝包EntityFramework.SqlServerCompact

+0

的4.0.0.1版本裝配下不會中等信任的工作,如您指向答案說明。您必須使用4.0.0.0才能使用中等信任度!使用名爲Desktop的文件夾。 – ErikEJ 2012-03-09 07:51:49

+0

謝謝Erik,這就是我發佈之前所做的。我想我錯過了幾個步驟。我從我的桌面文件夾複製System.Data.SqlServerCe.dll到我的bin文件夾。沒有效果。我還需要做些什麼來完成這項工作?我應該把它放在我的軟件包目錄中嗎? – 2012-03-09 19:34:01

回答

3

檢查你的包目錄如果你的SqlCompact是這個版本:SqlServerCompact.4.0.8852。1

如果是的話,你需要將文件複製裏面包\ SqlServerCompact.4.0.8852.1 \ NativeBinaries,因爲它們是不同的。

但是這個版本鴕鳥政策在中信任模式下運行,因爲他們改變了SqlCompact版本4.0.0.1,只有4.0.0.0通過在.NET 4的配置文件默認授權。如果需要,在中等信任運行的版本,試試這個https://nuget.org/packages/EntityFramework.SqlServerCompact/4.1.8482.2

+0

謝謝,但看到我上面的編輯。我仍然卡住。 – 2012-03-09 20:01:56

+0

http://nuget.org/packages/SqlServerCompact已更新,請卸載舊軟件包並獲取該軟件包。爲我工作。 – 2012-03-10 00:07:52

+0

謝謝。 ErikEJ的版本是不是說我們不能用於在中等信任下運行? – 2012-03-10 00:52:53

相關問題