2013-02-12 9 views
1

원래 IBM.Data.Informix의 원본을 사용하여 작업 할 때 ASP.NET 응용 프로그램에 대한 ASP.NET 2.0 대체품을 개발했습니다. Dll (2.81). 대체 부분은 정상적으로 작동하지만 데이터베이스에 연결할 때 간헐적으로 멈 춥니 다. (원본과 관련된 문제입니다.) dll (3.70)의 최신 버전으로 업그레이드하기로 결정했으나 이전 버전을 삭제하고 교체 할 때 그것과 함께 새로운, 다음 참조를 추가, 지금은 "개체 참조가 설정되지 않음"오류 때마다 응용 프로그램을 빌드 얻을.IBM.Data.Informix.dll을 업데이트 한 후 "Object reference not set"오류가 발생했습니다.

오류는 줄을 지정하거나 유용한 정보를 제공하지 않습니다. 작성하기 전에 .aspx 페이지 중 하나를 열면 파일 자체에 대한 경고도 표시됩니다. 영문 파일이 열려있을 때

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 

또한, 이것은 상단에 밑줄 : 특히 한 페이지,

: Build (web): Object reference not set to an instance of an object. 

그리고 경고 : 여기

전체 오류입니다 :

다시 말하면 이것은 최신 버전의 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입니다. 이것이 문제가 될 수 있다면 어떻게 수정해야합니까?

+0

FYI : 9.50은 10.00으로 출시 된 것에 대한 내부 지정입니다. 일부 버전 문자열 (9.50)에있을 가능성이 있지만 대부분의 사람들은이 버전을 10.00으로 인식합니다. –

+0

잘 알고 있습니다 - 제 상사가 버전 10이라고 말한 것이 이상하다고 생각했지만 db를 쿼리했을 때 9.50이라고 대답했습니다. :) – Ben

+0

'SELECT DBINFO ('version', 'full') 시도해보십시오 informix.systables WHERE tabid = 1'; 10.00 (및 몇 가지 추가 버전 정보)을 말해야합니다. –

답변

0

문제는 드라이버 버전이 이상하다고 밝혀졌습니다. 64 비트 버전 작업 (서버 2008 R2 64 비트에서 올바른 버전이기 때문에)을 만들려고 노력한 것에 지친 후에, 나는 그것을 제거하고 대신 32 비트 버전 (2.90 버전이 무엇인지)을 사용하여 시험해 보았습니다. 아주. 빈 프로젝트에 추가 할 때도 64 비트가 즉각적인 문제를 일으키는 이유가 없습니다. 차라리 32 비트보다 그 버전을 사용하고 싶지만, 솔루션을 찾기 위해 며칠을 보냈다. 실제로 32 비트를 사용하기 때문에 실제로 작동한다.

1

이 중 가장 가능성있는 것이이 문제의 원인 일 수 있습니다. GAC의 공급자 DLL이 올바르지 않을 수 있습니다. machine.config의 버전 정보가 잘못되었을 수 있습니다. 가능성이 가장 높습니다 (설정에 따라 다름) C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config.

올바른 CSDK 설치가 두 항목을 모두 업데이트해야합니다. 공급자 DLL을 간단한 복사본으로 바꾸려고합니까? 그렇다면 작동하지 않습니다. FYI : 언급 한 "간헐적으로 멈춤"은 다른 것입니다. 왜 그런지 모르겠다.

+0

Satyan : 이것은 웹 사이트가 아닌 웹 응용 프로그램입니다. 내가 참조한 \ bin \ 디렉토리에있는 것을 선택해서는 안됩니까? – Ben

관련 문제