我有一个使用SQL Server空间数据类型的.NET 4.5 Web应用程序项目。
在开发机器上可以完美运行,但将其部署到应用程序服务器后,尝试对带有空间数据的表运行查询时,会出现以下错误:
System.InvalidOperationException: DataReader.GetFieldType(5) returned null.
我发现如果服务器没有安装SQLServer,则不支持空间数据类型。
因此,我将NuGet包安装到了我的项目中:
Install-Package Microsoft.SqlServer.Types
这个操作添加了对Microsoft.SqlServer.Types的引用,并创建了一个包含一些dll文件的SqlServerTypes文件夹。
重新部署项目到服务器后,它仍然无法正常工作(出现相同的错误)。
nuget软件包的说明指出,我必须在application_start事件中添加以下代码行:
SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);
我尝试做这个,但在Visual Studio中,SqlServerTypes下面有蓝色的波浪线,并显示错误“SqlServerTypes未声明”。
我尝试添加
Imports Microsoft.SqlServer.Types
但是没有 SqlServerTypes 命名空间或类。