Редактировать: Мой вопрос сводится к тому, какие шаги мне нужно предпринять для создания веб-приложения, использующего SQL Server CE со средним уровнем доверия?
Я скопировал версию для настольного компьютера в каталог binпрежде чем опубликовать это, но я уверен, что есть еще шаги, которые не сработали.
Ошибка: Обнаружено возможное несоответствие версии файла между поставщиком ADO.NET и собственными двоичными файлами SQL Server Compact, которые моглипривести к неправильной функциональности.Это может быть связано с наличием нескольких экземпляров SQL Server Compact разных версий или из-за неправильных двоичных файлов с тем же именем, что и двоичные файлы SQL Server Compact.Пожалуйста, установите двоичные файлы SQL Server Compact соответствующей версии.
Веб-приложение: MVC 3, созданный с VS 2010
Все отлично работает на моем компьютере разработчика.
После прочтения этот пост , я избавился от своих ссылок и скопировал SqlServerCE.dll и SqlServerCe.Entity.dll в каталог bin.
Это изменило ошибку с
Не удалось загрузить файл илисборка 'System.Data.SqlServerCe, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = 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 в моем каталоге пакетов.
Я удалил SqlServerCE.dll и SqlServerCe.Entity.dll из моего каталога bin, так как они есть в моих пакетах.Я скопировал собственные двоичные файлы в свою корзину (и они включены в проект), но все равно получаю следующее сообщение:
Возможно обнаружение несоответствия версий файла между поставщиком ADO.NET и собственными двоичными файлами SQL ServerКомпактный, что может привести к неправильной функциональности.Это может быть связано с наличием нескольких экземпляров SQL Server Compact разных версий или из-за неправильных двоичных файлов с тем же именем, что и двоичные файлы SQL Server Compact.Пожалуйста, установите двоичные файлы SQL Server Compact соответствующей версии.
Мне не удалось использовать предложенный вами пакет nuget, поскольку у меня установлена более новая версия Entity Framework, и он откатил установку.
Я готов начать с нового проекта, если кто-то может порекомендовать установку SQL Server CE, которая будет работать в среде Medium Trust на сервере общего хостинга.
Это то, что я делал (и делаюне работает), когда я создал свой проект.
а.Install-Package SqlServerCompact б.Install-Package System.Web.Providers c.Установить пакет EntityFramework d.Install-Package EntityFramework.SqlServerCompact