Подтвердить что ты не робот

Не удалось загрузить DLL 'SqlServerSpatial.dll'

У меня есть веб-приложение .NET MVC, ссылающееся на System.Data.Spatial, поэтому я могу использовать тип данных DbGeography для свойства некоторых материалов геолокации. Я использую Visual Studio 2012 с .NET 4.5 и не имею полной установки SQL Server на моей машине разработки (только localdb).

Приложение отлично работает, пока я не нажму его на Azure. Как только мое приложение попадает в мое свойство DbGeography, оно вызывает эту ошибку:

Невозможно загрузить DLL 'SqlServerSpatial.dll': указанный модуль может не найдено.

Кто-нибудь еще столкнулся с этой проблемой?

4b9b3361

Ответ 1

SqlServerSpatial.dll - неуправляемый код. Вы должны установить правильную версию (64 бит) на сервере. Добавьте DLL в свой проект. Задайте свойства SqlServerSpatial110.dll в "Копировать в каталог вывода = Копировать всегда"

Вы найдете подробную информацию здесь

Ответ 2

SQL 2012 также устанавливает эту DLL, а SQL 2014 - нет! Вам необходимо установить на CLM-устройства Microsoft System CLR для SQL Server 2008 R2.

  • http://www.microsoft.com/en-us/download/details.aspx?id=26728
  • Нажмите Загрузить
  • Отключите один из этих в зависимости от архитектуры процессора:

    • 1033\x64\SQLSysClrTypes.msi
    • 1033\x86\SQLSysClrTypes.msi
    • 1033\IA64\SQLSysClrTypes.msi
  • Нажмите Далее

Edit

как Ian Grainger комментарий, вы должны установить правильную версию на основе вашего IIS. по-видимому, IIS Express работает по умолчанию в 32-битном режиме.

Ответ 3

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
  <assemblyIdentity name="Microsoft.SqlServer.Types" 
  publicKeyToken="89845dcd8080cc91" culture="neutral" />
  <bindingRedirect oldVersion="10.0.0.0" newVersion="12.0.0.0" />
  </dependentAssembly>
  </assemblyBinding>
</runtime>

Ответ 4

Я столкнулся с этой проблемой и действительно отсутствовал SqlServerSpatial110.dll

В результате я получил следующие инструкции:

http://dllyes.com/sqlserverspatial110-dll/

В основном вам нужно получить доступ к этому .dll, а затем

Поместите файл SqlServerSpatial110.dll в \Windows\System32 (обычно на диск C), если вы используете 32-битную Windows. Если вы используете 64-битный Windows, дополнительно поместите файл в папку \Windows\SysWOW64.

Ответ 5

Я боролся с этим довольно долго, я установил необходимые файлы, но он все еще не работал.

Видимо, проект хотел использовать x86 SqlServerSpatial.dll. Поэтому я изменил IIS Express Build на x64 в Инструменты> Параметры> Веб-проекты> Использование 64-битного IIS. Вот экран

Нет необходимости добавлять новые пакеты nuget, просто установите SQLSysClrTypes со страницы Microsoft: http://go.microsoft.com/fwlink/?LinkID=188391&clcid=0x409, и все должно быть в порядке;)

Надеюсь, что это кому-то поможет!

Ответ 6

  • Типы
  • SqlGeometry и SqlGeography могут использоваться в VS-проектах (например, С#), ссылаясь на Microsoft.SqlServer.Types.dll.
  • Microsoft.SqlServer.Types.dll - управляемая библиотека и имеет некоторые неуправляемая библиотека в качестве предпосылок, и они подобны SqlServerSpatialXXX.dll и msvcrXXX.dll
  • Начиная с Sql Server 2008, разные версии Microsoft.SqlServer.Types.dll доступны, однако я не вижу никаких изменение функциональности с 2012 года.

Для получения подробного решения вы можете увидеть мой ответ на другом подобном сообщении.

Ответ 7

I had the same issue in godaddy VPS with windows server 2012 r2

Я разрешил его, обновив EF5 до EF6

в консоли диспетчера пакетов запускается до EF5 до EF lalest

Install-Package EntityFramework