更新IBM.Data.Informix.dll后,项目给出“对象引用未设置”错误

时间:2013-02-12 20:51:34

标签: c# asp.net informix

我最初使用原始版本的IBM.Data.Informix.Dll(2.81)为ASP.NET应用程序开发了ASP.NET 2.0替代品。替换在大多数情况下工作正常,但在连接到数据库时间歇性地挂起(这是原始问题。)我决定升级到最新版本的dll(3.70),但删除旧版本并更换使用new,然后添加引用,我现在每当构建应用程序时都会收到“Object reference not set”错误。

错误未指定行或提供任何有用信息。如果我在构建之前打开其中一个.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然后用旧的替换它,它会再次开始正常工作。

只是为了解释为什么我没有使用IBM.Data.Db2:我们拥有的Informix服务器是10.0,而DB2仅适用于11.10及更高版本。

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

2 个答案:

答案 0 :(得分:1)

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

正确的CSDK安装应该更新两个条目。 您是否尝试通过简单的副本替换提供程序DLL,如果是这样,它将无法正常工作。 仅供参考:您提到的“间歇性挂起”是不同的东西;不知道为什么。

答案 1 :(得分:0)

事实证明,驱动程序版本的问题很奇怪。在厌倦了尝试使64位版本工作(这是在Server 2008 R2 64bit,所以这是正确的版本)后,我尝试卸载它并使用32位版本(这是2.90版本。)它工作。完美。不知道为什么64位即使在添加到空白项目时也会立即引起问题。虽然我宁愿使用那个版本而不是32bit,但是花了几天时间试图找到一个解决方案,我只想使用32位,因为它确实有用。

相关问题