Asp.net SqlServer Spatial DataReader.GetFieldType返回null
我有一个.net4.5web应用程序项目,它使用SQLServerSpatial数据类型 在开发机器上本地运行非常好,但当部署到application server时,我在尝试对具有空间数据的表运行查询时遇到以下错误:Asp.net SqlServer Spatial DataReader.GetFieldType返回null,asp.net,sql-server,vb.net,geospatial,Asp.net,Sql Server,Vb.net,Geospatial,我有一个.net4.5web应用程序项目,它使用SQLServerSpatial数据类型 在开发机器上本地运行非常好,但当部署到application server时,我在尝试对具有空间数据的表运行查询时遇到以下错误: System.InvalidOperationException: DataReader.GetFieldType(5) returned null. 我发现,如果服务器上没有安装SQLServer,则不支持空间数据类型 因此,我将nuget软件包安装到我的项目中: Insta
System.InvalidOperationException: DataReader.GetFieldType(5) returned null.
我发现,如果服务器上没有安装SQLServer,则不支持空间数据类型
因此,我将nuget软件包安装到我的项目中:
Install-Package Microsoft.SqlServer.Types
这添加了对Microsoft.SqlServer.Types的引用,并创建了包含一些DLL的SqlServerTypes文件夹
将项目重新部署到服务器后,仍然无法工作(相同错误)
nuget包中的说明说,我必须将以下行添加到applciation_start事件中:
SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
我尝试过这样做,但在VisualStudio中,SqlServerTypes下面出现了一条弯曲的蓝线,错误为“SqlServerTypes未声明”
我试着添加
Imports Microsoft.SqlServer.Types
但是没有SqlServerTypes命名空间或类。nuget包Microsoft.SqlServer.Types仅用于c#项目 您可以修改该类以与vb.net项目兼容 使用以下方法将支持安装到项目中:
Install-Package Microsoft.SqlServer.Types
找到以下文件:
/SqlServerTypes/Loader.cs
将Loader.cs中的代码转换为vb(您可以使用联机转换器进行转换),并将文件另存为:Loader.vb
现在,您将能够从项目中访问SqlServerTypes名称空间。可能的重复使我走上了正确的方向;但是,我需要在我的
app.config
文件中添加一个对这些类型的引用,这些类型在回答中有详细说明