EF 6 and DbGeo Spatial Type for Windows Azure

Spent a couple of very nasty days trying to get the spatial type of DbGeography to work on Windows Azure. I have a Windows Azure project with Webrole where I use the DbGeography.Distance () method to calculate distances. Jobs love the charm on my local computer, but after posting to Azure, I get an exception:

Search spa failed message: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) at Microsoft.SqlServer.Types.GLNativeMethods.GeodeticDistance(GeoMarshalData g1, GeoMarshalData g2, EllipsoidParameters ellipsoidParameters, Double& result) at Microsoft.SqlServer.Types.GLNativeMethods.GeodeticDistance(GeoData g1, GeoData g2, EllipsoidParameters ellipsoidParameters) at Microsoft.SqlServer.Types.SqlGeography.STDistance(SqlGeography other) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Data.Entity.SqlServer.SqlSpatialServices.Distance(DbGeography geographyValue, DbGeography otherGeography) at System.Data.Entity.Spatial.DbGeography.Distance(DbGeography other) at DataAccess.Util.DistanceHelper.GetDistanceDictionary(DbGeography spaLocation) at MvcWebRole.Controllers.SpaController.SearchSpa(String searchString) 

I followed the blog post http://alastaira.wordpress.com/2011/08/19/spatial-applications-in-windows-azure-redux-including-denali/ by adding a link to Sql.Server.Types and SqlServerSpatial. dll, msvcp100.dll and msvcr100. dll Thist actually worked with EF5 and the Azure Website project, but not now when I upgraded to EF6 and the Cloud service project :(

+4
source share
1 answer

System.BadImageFormatException means that you are deploying the wrong version of your own assembly (x86 vs x64).

We published the NuGet package to make it easier - check out this post for details http://blogs.msdn.com/b/adonet/archive/2013/12/09/microsoft-sqlserver-types-nuget-package-spatial- on-azure.aspx .

+1
source

Source: https://habr.com/ru/post/1490449/


All Articles