- 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 ответов:
Я нашел решение ! Просто установите пакет 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 способа исправить это:
- если у вас есть доступ к серверу, просто установите " 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
все работало нормально.