发布到服务器时 DbGeography 不起作用

DbGeography does not work when published to a server

以下代码在调试时可以在我的本地计算机上运行,​​但在发布到服务器时会抛出错误。

public IEnumerable<Restaurant> Nearby(double latitude, double longitude, double distance)
{
    var region = DbGeography.PointFromText(string.Format("POINT({1} {0})", latitude, longitude), 4326).Buffer(10000);
    return Find(x => SqlSpatialFunctions.Filter(x.Location, region) ?? false);
}

疯狂搜索后,我从nuget安装了Microsoft.SqlServer.Types。 (版本 14.0.1016.290)

在~/bin文件夹中添加了所需的dll(由上述包提供)。

在Global.asax.cs

中添加了以下代码
SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));

但代码仍然抛出“500 内部服务器错误。发生错误”。

注意:这在我的本地机器上运行完美。

哇,这个 answer 终于奏效了。

注意:我必须从

中包含 Microsoft.SqlServer.Types.dll

~/packages/Microsoft.SqlServer.Types.14.0.1016.290\lib\net40 也在 ~/bin 文件夹中