Как развернуть SQL CE 4 CTP на виртуальном хостинге? - PullRequest
9 голосов
/ 12 августа 2010

Как развернуть SQL CE 4.0 с EF4 на провайдере общего хостинга для ASP.NET MVC 2.0?

Я включил System.Data.SqlServerCe.dll и каталоги amd64 + x86 в свой каталог.папку bin, но постоянно получаю сообщение «.net провайдера не найдено».Я понимаю, что это в настоящее время в CTP, но это только для целей тестирования.Мой проект + хост настроен на .net 4.0

Ответы [ 3 ]

10 голосов
/ 20 июня 2011

В Visual Studio 2010 теперь есть простой способ развертывания SQL CE 4 в среде общего хостинга с помощью «Развертываемых зависимостей». Вам не нужно вручную копировать dll в папку bin или изменять ваш web.config. Оба из них сделаны для вас.

«Мы можем включить необходимые сборки в веб-сайт или проект веб-приложения с помощью нескольких простых шагов. Щелкните правой кнопкой мыши узел проекта в обозревателе решений и выберите пункт контекстного меню« Добавить развертываемые зависимости… ».»

Развертываемые зависимости http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-63-56-metablogapi/4403.MenuItem_5F00_1.png

(http://blogs.msdn.com/b/webdevtools/archive/2011/01/06/how-to-bin-deploy-sql-compact-edition-4-0-and-razor-web-projects.aspx)

3 голосов
/ 05 октября 2010

Есть две возможности, которые могут вызвать эту проблему:

  1. Когда вы устанавливаете SQL CE на компьютере разработчика с помощью установщика Windows, для провайдера добавляется запись в machine.config,Однако при развертывании на хостинг запись провайдера, возможно, не будет существовать, поэтому вы должны добавить эту запись в ваш web.config ( специально для EF, я думаю ):

    <system.data>
      <DbProviderFactories>
       <add 
        name="SQL Server Compact Edition 4.0" 
        invariant="System.Data.SqlServerCe.4.0"
        description=".NET Framework Data Provider for Microsoft SQL Server Compact Edition 4.0" 
        type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
      </DbProviderFactories>
    </system.data>
    
  2. Редактировать: К счастью, Microsoft решила проблему развертывания в SQL CE 4.0 RTM (версия 4.0.8482.1), которая выпущена 12.01.2011.Папка «Private» содержит файлы DLL, относящиеся как к x64, так и к x86, и теперь также содержит необходимые библиотеки времени выполнения C ++ в подпапках amd64 \ Microsoft.VC90.CRT и x86 \ Microsoft.VC90.CRT.Таким образом, с этого момента при развертывании всех библиотек DLL и папок в папке Private развертываются все файлы, необходимые для правильной работы Compact. SQL CE 4.0 CTP выглядит многообещающе, но развертывание по-прежнему отстой, нам все еще нужно включить несколько собственных библиотек DLL (amd64и каталоги x86, это некрасиво) и, кроме того, существует зависимость от Visual C ++ 2008 Runtime Libraries SP1, о которой никто, кажется, не знает.Как мы можем быть уверены, что у общего хостинга есть это исправление?Хотелось бы, чтобы мы смогли выполнить развертывание, просто включив System.Data.SqlServerCe.dll (и System.Data.SqlServerCe.Entity.dll для поддержки EF).Я надеюсь, что в будущем они выпустят полностью управляемую версию (например, VistaDB).По крайней мере, MS должна была принудительно запустить эту среду выполнения вместе с установкой .Net Framework 4.0, дополнительную информацию см. Ниже:

    Установка CTP1 SQL Server Compact 4.0 с помощью файла установщика Windows (.exe), а также установкаVisual C ++ 2008 Runtime Libraries SP1.Если SQL Server Compact 4.0 CTP1 развернут в частном порядке в папке приложения, для правильной работы SQL Server Compact на компьютере должно присутствовать следующее:

    1.Установка .NET Framework 3.5SP1 также устанавливает библиотеки времени выполнения Visual C ++ 2008 с пакетом обновления 1 (SP1).

    2.Визуальные библиотеки времени выполнения C ++ 2008 с пакетом обновления 1 (SP1) можно загрузить и установить по указанному ниже адресу: http://go.microsoft.com/fwlink/?LinkId=194827

    Обратите внимание, что установка .NETFramework 2.0, 3.0 или 4 не устанавливает библиотеки времени выполнения Visual C ++ 2008 SP1.

0 голосов
/ 11 февраля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...