>

테스트를 위해 응용 프로그램을 서버에 업로드 할 때 이상한 이상한 오류가 발생합니다. 내가 연구 한 결과, MySql.Data와 충돌하여 발생한 것으로 보입니다. 업로드 한 사본은 6.3.7.0에 속합니다.

이 문제를 어떻게 해결할 수 있습니까? 빈에 넣는 것이 GAC에있는 것을 '재정의'할 것이라고 생각 했습니까?

NHibernate.Exceptions.GenericADOException : 질의를 실행할 수 없음 [SELECT this_.Id를 Id18_0_, this_.Email을 Email18_0 _,

(기타 속성)

User 에서

 this_ WHERE this_.Email =? 그리고 this_.Password =? ] 위치 매개 변수 # 0>+ WvewHQlNRyQNKjBAtPR1AwrWQj0nwfmIflO r4mCJQWA1jZ9zRvefcGz6ZA69b3v # 1>97403BA77F7C26BEC6B4F0A4F8509E02848CCD7DCF61D7DF5D79C3AAB2760E6AE1EB26F5D10D384E069F8C6089C47D3F1F0F17E7EBF30F71A68A39DF8863646F

[SQL : this_.Id를 Id18_0_, this_.Email을 Email18_0_로 선택,

(기타 속성)

User 에서

 this_ WHERE this_.Email =? 그리고 this_.Password =?] --->

System.InvalidCastException : [A] MySql.Data.MySqlClient.MySqlConnection을 [B] MySql.Data.MySqlClient.MySqlConnection으로 캐스트 할 수 없습니다. 유형 A는 위치 'C : \ Windows \ assembly \ GAC_MSIL \ MySql.Data \ 6.2.3.0__c5687fc88969c44d \에있는'Default '컨텍스트의'MySql.Data, 버전 = 6.2.3.0, Culture = neutral, PublicKeyToken = c5687fc88969c44d '에서 시작합니다. MySql.Data.dll '. 유형 B는 위치 'C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP의'Default '컨텍스트에서'MySql.Data, 버전 = 6.3.7.0, Culture = neutral, PublicKeyToken = c5687fc88969c44d '에서 시작합니다. NET 파일 \ root \ cb584441 \ 17e039bb \ assembly \ dl3 \ 6b14fe89 \ 804a4095_b2c0cc01 \ MySql.Data.DLL '.

NHibernate.AdoNet.AbstractBatcher.Prepare (IDbCommand cmd)의 System.Data.Common.DbCommand.System.Data.IDbCommand.set_Connection (IDbConnection 값)에서 MySql.Data.MySqlClient.MySqlCommand.set_DbConnection (DbConnection 값)에서

NHibernate.Loader.Loader.GetQuery (ISbCommand st, 부울 autoDiscoverTypes, 부울 호출 가능, RowSelection 선택, ISessionImplementor 세션)에서 NHibernate.Loader.Loader.DoQuery (ISessionImplementor session, QueryParametersParameter, SessionParameter) NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections에서 부울 리턴 프록시 (ISessionImplementor 세션, QueryParameters queryParameters, 부울 returnProxies)에서 NHibernate.Loader.Loader.DoList (ISessionImplementor 세션, QueryParameters queryParameters) --- 내부 예외 스택 추적 종료 --- NHiberber에서 NHibernate.Loader.Loader.List에서 .Loader.Loader.DoList (ISessionImplementor 세션, QueryParameters queryParameters) NHibernate.Loader.Loader.List의 QueryCache (ISessionImplementor 세션, QueryParameters queryParameters) (ISessionImplementor 세션, QueryParameters queryParameters, ISet 1 querySpaces, IType[] resultTypes) at NHibernate.Impl.SessionImpl.List(CriteriaImpl criteria, IList results) at NHibernate.Impl.CriteriaImpl.List(IList results) at NHibernate.Impl.CriteriaImpl.UniqueResult[T]() at NHibernate.Criterion.QueryOver 1. NHibernate.Criterion.QueryOver`1.NHibernate.IQueryOver.SingleOrDefault ()의 SingleOrDefault ()

  • 답변 # 1

    몇 년 후 같은 문제가 발생했습니다!

    내 서버가 gac에 MySql Connector 6.4.6 버전을 설치했지만 6.8.3 버전으로 작업하고 있는데 "캐스트 할 수 없습니다"오류가 발생했습니다. 다음 섹션을 .config에 추가했습니다. 파일

    <system.data>
        <DbProviderFactories>
          <!-Removes the dll installed in gac-->
          <remove invariant="MySql.Data.MySqlClient" />
          <!-Add the dll copied in the bin folder-->
          <add name="MySQL" description="ADO.Net driver for MySQL" invariant="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data"/>
        </DbProviderFactories>
    </system.data>
    
    

  • 답변 # 2

    예상대로 두 가지 버전의 MySql을 사용하고 있습니다. 버전 6.2.3.0  및 버전 6.3.7.0 . 이 시점에서 나는 추측 할 수 있습니다. 아마도 다른 버전의 MySql로 빌드 된 dll을 사용하고있을 수 있습니다 (그리고 나란히 설치할 수 있습니다).

  • 이전 excel - VBA에서 시작할 때 파이썬 모듈 가져 오기
  • 다음 ios - 내 앱에서 암호 잠금 장면을 사용하는 방법은 무엇입니까?