2011-11-21 2 views
2

webconfig 파일에 정의 된 연결 문자열을 사용하여 asp.net 웹 응용 프로그램을 만들려고했습니다.오류를 없애는 방법 : .net에서 "데이터 소스 이름을 찾을 수없고 기본 드라이버가 지정되지 않았습니다"?

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

연결 문자열은 다음과 같습니다 : 내가 디버그하려고 할 때 다음과 같은 예외를 얻고있다

connectionString="Driver={MySQL ODBC 5.1 Driver};server=XX.XX.XX.XX;port=3306;database=db_name;user=username;pwd=pass;option=3;" providerName="System.Data.Odbc"/>

드라이버가 설치되어 있고 나는 그것이 'ODBC 데이터 원본 관리자에 등록되어있는 것을 확인하실 수 있습니다 '.

빌드 구성을 '모든 CPU'로 변경하려고했지만 여전히 실패했습니다.

누군가가 나를 여기에서 무슨 일이 일어나는지 알아낼 수 있습니까?

감사합니다,

우다이

+0

웹 앱을 거치지 않고 동일한 예외가 발생하는 테스트를 작성할 수 있습니까? –

+0

ODBC 데이터 관리자의 드라이버 이름은 "MySQL ODBC 5.1 Driver"입니까? – aleroot

+0

그냥 콘솔 앱과 동일한 연결 문자열이 작동한다고 추가하고 싶습니다 !! – usp

답변

4

당신이 86로 실행 파일을 컴파일하려면 당신이 기본 (CPU 양)와 같은 실행 파일을 컴파일하는 데 사용할 수있는 ODBC 드라이버의 x64 버전을, 그렇지 않으면 당신은 한 설치 한 경우 만 x86-32 드라이버를 사용하십시오.

기본적으로 x64에 CPU (x64 및 x86)로 컴파일 된 응용 프로그램은 64 비트 버전의 드라이버를 사용합니다. 즉, 32 비트 버전의 ODBC 드라이버를 설치하고 실행 파일을 컴파일하면 CPU 또는 x64 모두 오류가 발생하므로 응용 프로그램 만 x86을 컴파일해야합니다.

+0

실제로 32 비트 드라이버를 설치 한 후 내 애플 리케이션이 작동했을 때 놀랐다. x64 용 앱을 컴파일했지만 여전히 실패했습니다! – usp

+1

정말 이상합니다 ... – aleroot

0

내부 응용 프로그램 대신 IIS를 사용하도록 VS를 구성 할 수 있습니다. 웹 응용 프로그램에 대해 IIS를 올바르게 구성하면 (예 : Windows Server 2k8 R2가 이전 버전보다 상당히 격렬한 구성/보안 차이가 있음) 더 많은 환경을 경험할 수 있습니다. 64 비트에서 실행되도록 AppPool을 구성하면 코드도 64 비트 모드로 실행되어야합니다.

관련 문제