108 votes

La version 10 ou supérieure de 'Microsoft.SqlServer.Types' n'a pas pu être trouvée sur Azure.

J'essaie de créer un webapi en ASP.NET MVC 4. Le webapi utilise les types Spatial d'Entity Framework 5 et j'ai écrit un code très simple.

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

La zone contient DbGeometry.

Lorsque je l'exécute localement, il fonctionne, mais lorsque je le publie sur Azure, il me donne cette erreur :

Les types et fonctions spatiaux ne sont pas disponibles pour ce fournisseur car l'assemblage 'Microsoft.SqlServer.Types' version 10 ou supérieure n'a pas pu être trouvé.

Quelqu'un sait-il comment résoudre ce problème ? :)

Gracias.

13voto

Inusable Lumière Points 163

J'ai également rencontré ce problème, mais le paquet nuget Microsoft.SqlServer.Types était déjà installé.

Ce qui a résolu le problème pour moi a été d'aller dans Solution > References > System.Data.Entity > Properties > Copy Local, et de le mettre à True.

Note : Copy Local pour Microsoft.SqlServer.Types était déjà réglé sur true, et même si le problème concernait System.Data.Entity, le message d'erreur concernait toujours Microsoft.SqlServer.Types.

La solution vient de Forum Windows Azure .

5voto

devKoen1 Points 106

La solution pour moi a été d'ajouter cette ligne de code à Global.asax.cs en Application_Start() :

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

Bonne chance mes frères.

3voto

Saeed Mohtasham Points 364

Suite à un commentaire dans une réponse au message actuel, l'ajout de ces deux lignes (de préférence à la fonction principale) a résolu mon problème pour l'application Console :

SqlProviderServices.SqlServerTypesAssemblyName = typeof(SqlGeography).Assembly.FullName;
SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);

3voto

Dr TJ Points 1042

Dans mon cas (une application WebForms) j'ai résolu le problème en ajoutant les lignes suivantes dans le fichier Application_Start de la Global.asax fichier.

SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));
System.Data.Entity.SqlServer.SqlProviderServices.SqlServerTypesAssemblyName = "Microsoft.SqlServer.Types, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91";

J'espère que cela aidera quelqu'un.

1voto

MPM Points 163

Aucune des solutions ci-dessus n'a fonctionné pour moi.

  • Le pack de fonctionnalités du serveur SQL est installé ? Oui
  • Le paquet NuGet est installé ? Oui
  • DLL existe dans le GAC et dans la corbeille du projet ? Oui

Vous savez quoi, cette erreur peut aussi être due à faibles ressources sur le serveur . J'ai redémarré le serveur SQL et le problème a été résolu automatiquement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X