Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新IBM.Data.Informix.dll后,project给出;“未设置对象引用”;错误_C#_Asp.net_Informix - Fatal编程技术网

C# 更新IBM.Data.Informix.dll后,project给出;“未设置对象引用”;错误

C# 更新IBM.Data.Informix.dll后,project给出;“未设置对象引用”;错误,c#,asp.net,informix,C#,Asp.net,Informix,我最初使用IBM.Data.Informix.Dll(2.81)的原始版本开发了一个ASP.NET 2.0替代品,用于工作中的ASP.NET应用程序。替换在大部分情况下工作正常,但在连接到数据库时会间歇性挂起(这是原始版本的问题)。我决定升级到dll的最新版本(3.70),但在删除旧版本并替换为新版本,然后添加引用后,我现在得到一个“未设置对象引用”构建应用程序时出错 该错误未指定行或提供任何有用信息。如果在构建之前打开其中一个.aspx页面,我还会在文件本身上收到警告 以下是整个错误: : B

我最初使用IBM.Data.Informix.Dll(2.81)的原始版本开发了一个ASP.NET 2.0替代品,用于工作中的ASP.NET应用程序。替换在大部分情况下工作正常,但在连接到数据库时会间歇性挂起(这是原始版本的问题)。我决定升级到dll的最新版本(3.70),但在删除旧版本并替换为新版本,然后添加引用后,我现在得到一个“未设置对象引用”构建应用程序时出错

该错误未指定行或提供任何有用信息。如果在构建之前打开其中一个.aspx页面,我还会在文件本身上收到警告

以下是整个错误:

: Build (web): Object reference not set to an instance of an object.
以及警告,尤其是一页:

Warning 2   \\io\wwwroot\intranet\cwsheet-test2\Selection.aspx: ASP.NET runtime error: Object reference not set to an instance of an object.    \\io\wwwroot\intranet\cwsheet-test2\Selection.aspx  1   1   cwsheet-test2
此外,当aspx文件打开时,顶部会加下划线:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Selection.aspx.cs" Inherits="XXX.Selection" %>

同样,这仅适用于较新版本的dll。dll是我的系统的正确版本(取自64位SDK)。如果我删除这个dll,然后用旧的dll替换它,它会再次正常工作

为了说明我为什么不使用IBM.Data.Db2:我们的Informix服务器是10.0,Db2只适用于11.10及以上版本


关于Satyan的问题:网站中的GAC参考设置为3.0.0.2;添加引用时,DLL的版本号为3.00.05000.2。如果这可能是问题所在,我该如何纠正它?

最有可能的原因之一就是这个问题。 GAC上的提供程序DLL可能不正确。 或者
machine.config
可能有错误的版本信息。 很可能位于(但取决于您的设置)
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.CONFIG

正确的CSDK安装应该已经更新了这两个条目。 您是否试图用简单副本替换提供程序DLL,如果是这样,它将不起作用。
仅供参考:您提到的“间歇性挂起”有所不同;不知道为什么

最有可能的原因之一就是这个问题。 GAC上的提供程序DLL可能不正确。 或者
machine.config
可能有错误的版本信息。 很可能位于(但取决于您的设置)
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.CONFIG

正确的CSDK安装应该已经更新了这两个条目。 您是否试图用简单副本替换提供程序DLL,如果是这样,它将不起作用。
仅供参考:您提到的“间歇性挂起”有所不同;不知道为什么

事实证明,对于驱动程序的版本来说,这个问题已经够奇怪的了。在厌倦了尝试使用64位版本(这是在Server2008R2上的64位版本,所以这是正确的版本)之后,我尝试卸载它并使用32位版本(这就是2.90版本)。它工作得非常好。不知道为什么64位即使添加到空白项目中也会立即出现问题。虽然我宁愿使用那个版本而不是32位,但花了几天时间试图找到一个解决方案,我只打算使用32位,因为它确实可以工作。

事实证明,这个问题对于驱动程序的版本来说已经够奇怪了。在厌倦了尝试使用64位版本(这是在Server2008R2上的64位版本,所以这是正确的版本)之后,我尝试卸载它并使用32位版本(这就是2.90版本)。它工作得非常好。不知道为什么64位即使添加到空白项目中也会立即出现问题。虽然我宁愿使用那个版本而不是32位,但花了几天时间试图找到一个解决方案,我只打算使用32位,因为它确实可以工作。

FYI:9.50是10.00版本的内部名称。它(9.50)可能存在于某些版本字符串中,但大多数人只会将其识别为10.00。很高兴知道——我觉得奇怪的是,我的老板说它是版本10,但当我询问数据库时,它说9.50.:)尝试
从informix.systables中选择DBINFO('version','full'),其中tabid=1
;它应该是10.00(还有一些额外的版本信息),确实是这样。“IBMInformixDynamicServerVersion10.00.FC5”。关于DLL的问题有什么想法吗?我能拼出Windows:U,N,I,X?恐怕不是。我会在办公室问一下。仅供参考:9.50是内部指定的10.00版本。它(9.50)可能存在于某些版本字符串中,但大多数人只会将其识别为10.00。很高兴知道——我觉得奇怪的是,我的老板说它是版本10,但当我询问数据库时,它说9.50.:)尝试
从informix.systables中选择DBINFO('version','full'),其中tabid=1
;它应该是10.00(还有一些额外的版本信息),确实是这样。“IBMInformixDynamicServerVersion10.00.FC5”。关于DLL的问题有什么想法吗?我能拼出Windows:U,N,I,X?恐怕不是。这是一个网站,不是一个网络应用程序。它不应该只拾取我引用的\bin\目录中的内容吗?Satyan:这是一个网站,不是一个web应用程序。它不应该只拾取我引用的\bin\目录中的内容吗?