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 :(
source share