1

我最初使用 IBM.Data.Informix.Dll (2.81) 的原始版本为工作中的 ASP.NET 应用程序开发了一个 ASP.NET 2.0 替代品。替换大部分工作正常,但连接到数据库时间歇性挂起(这是原来的问题。)我决定升级到最新版本的 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 然后用旧的替换它,它会再次开始正常工作。

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

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

4

2 回答 2

1

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

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

于 2013-02-13T18:43:40.483 回答
0

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

于 2013-02-18T21:07:38.433 回答