- Microsoft.От SQLServer.Типы версии 10 или выше не удалось найти в Azure


Я пытаюсь сделать webapi в ASP.NET MVC 4. Webapi использовал Entity Framework 5 пространственных типов, и я написал очень простой код.

  public List<Area> GetAllAreas()
    {
        List<Area> aList = db.Areas.ToList();
        return aList;
    }

содержит DbGeometry.

когда я запускаю этот локальный он работает, но когда я публикую его в azure он дает мне эту ошибку:

пространственные типы и функции недоступны для этого поставщика, поскольку сборка 'Microsoft.От SQLServer.Версия типа 10 или выше не может быть найдено.

кто-нибудь знает как решить это ? :)

спасибо!

10 68

10 ответов:

Я нашел решение ! Просто установите пакет nuget Microsoft.От SQLServer.Типы

PM> Install-Package Microsoft.От SQLServer.Типы

Ссылка для получения дополнительной информации

на ответ выше отлично работает, когда можно использовать версию 11 (SQL Server 2012) сборки.

У меня была проблема с этим, поскольку мое решение имеет другие зависимости от версии 13 (SQL Server 2016) той же сборки. В этом случае обратите внимание, что Entity Framework (по крайней мере, v6.1.3) жестко закодирован в своем SqlTypesAssemblyLoader (источник этого исключения), чтобы искать только версии 10 и 11 сборки.

чтобы обойти это я обнаружено, что вы можете указать Entity Framework, какую сборку вы хотите использовать следующим образом:

SqlProviderServices.SqlServerTypesAssemblyName =
    "Microsoft.SqlServer.Types, Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91";

по какой-то причине я пропустил перенаправление привязки, которое исправило эту проблему для меня.

добавление следующего исправлена моя проблема

    <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
      <bindingRedirect oldVersion="10.0.0.0-11.0.0.0" newVersion="14.0.0.0" />
    </dependentAssembly>

есть 2 способа исправить это:

  1. если у вас есть доступ к серверу, просто установите " Microsoft System CLR Types for SQL Server 2012" это от https://www.microsoft.com/en-us/download/details.aspx?id=29065 Или Используйте Прямую Ссылку Ниже Прямая ссылка на X86:http://go.microsoft.com/fwlink/?LinkID=239643&clcid=0x409 , Или прямая ссылка на X64:http://go.microsoft.com/fwlink/?LinkID=239644&clcid=0x409

Я тоже столкнулся с этой проблемой, но Microsoft.От SQLServer.Типы NuGet-пакет уже был установлен.

то, что решило проблему для меня, было решением > ссылки > система.Данные.Сущность > свойства > копировать локально и установить для нее значение True.

Примечание: Копировать локально для Microsoft.От SQLServer.Типы уже были установлены в true, и хотя проблема была с системой.Данные.Сущность, сообщение об ошибке все еще было о Microsoft.От SQLServer.Типы.

решение от форум Windows Azure.

решение для меня было просто добавить эту строку кода в Global.асакс.cs в Application_Start():

SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));

удачи мои братья.

ни одно из вышеперечисленных решений не сработало.

  • установлен пакет компонентов SQL Server? Да
  • установлен пакет NuGet? Да
  • DLL существует в GAC и в корзине проекта? Да

знаешь, эта ошибка также может быть из-за низкие ресурсы на сервере. Я перезапустил SQL server, и он был разрешен автоматически.

пожалуйста, добавьте "dependentAssembly" в Интернете.конфигурационный файл

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

это работает для меня

просто была та же проблема. Я использую EF6, а вызов SQL, который имеет функцию SQL, которая использует пространственный команды. Я проверил это через модульный тест, и он работал нормально. Когда я пошел, чтобы подключить Мой Asp.Net решение я получил ошибку

пространственные типы и функции недоступны для этого поставщика потому что сборку 'Microsoft.От SQLServer.Типы версии 10 или выше не удалось найти.

добавить "Microsoft.От SQLServer.Типы " и добавление SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin")); до Application_Start method на Global.asax.cs все работало нормально.

в моем случае это вызвано плохо составленной строкой соединения. Проверьте, правильно ли составлена строка подключения.