2011-12-22 10 views
2

テストのためにアプリケーションをサーバーにアップロードすると、この奇妙な説明できないエラーが発生します。私が学んだことから、これはMySql.Dataの競合によって引き起こされたと思われます。私がアップロードしたコピーは6.3.7.0です。[A] MySql.Data.MySqlClient.MySqlConnectionを[B] MySql.Data.MySqlClient.MySqlConnectionにキャストすることができません。

どうすればこの問題を解決できますか?私はそれをビンに入れただけでGACのものを「上書きする」と思ったのですか?

NHibernate.Exceptions.GenericADOException:クエリを実行することができなかった[User this_ this_.Email = FROM Id18_0_、Email18_0_としてthis_.Email、

(ETC特性)

としてthis_.Id選択? this_.Password =? 】位置パラメータ:#0> WvewHQlNRyQNKjBAtPR1AwrWQj0nwfmIflO + r4mCJQWA1jZ9zRvefcGz6ZA69b3v#1> 97403BA77F7C26BEC6B4F0A4F8509E02848CCD7DCF61D7DF5D79C3AAB2760E6AE1EB26F5D10D384E069F8C6089C47D3F1F0F17E7EBF30F71A68A39DF8863646F

[SQL:Id18_0_、Email18_0_としてthis_.Emailとしてthis_.Id選択

(ETC特性)

User this_ FROM 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、Version = 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、Version = 6.3.7.0、Culture = neutral、PublicKeyToken = c5687fc88969c44d' NETファイル\ルート\ cb584441 \ 17e039bb \アセンブリ\ 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.DoQuery(NHibernate.Loader.Loader.GetResultSet)のNHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd)で、NHibernate.Loader.Loader.DoQuery(IDessionCommand st、Boolean autoDiscoverTypes、ブール呼び出し可能、RowSelection選択、ISessionImplementorセッション)(ISessionImplementorセッション、QueryParameters queryParameters 、ブール型returnProxies)(NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementorセッション、QueryParameters queryParameters、Boolean returnProxies)NHibernate.Loader.Loader.DoList(ISessionImplementorセッション、QueryParameters queryParameters)---内部例外スタックトレースの終了--- NHibernate.Lo NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementorセッション、QueryParameters queryParameters)のNHibernate.Loader.Loader.List(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)でのader.Loader.DoList(ISessionImplementorセッション、QueryParameters queryParameters)1.SingleOrDefault()

+0

を次のセクションを追加する固定デプロイバージョンビン、およびサーバーにインストールされている別のバージョンを持っていますか? – Sam

+0

こんにちはサム、私のバージョンは、私が確かに知っている6.3.7.0です。私はサーバーがすでにGACに6.2.3.0を持っていると思う。どうすればそれを動作させることができますか?任意のヒント? – RicL

答えて

0

expectionによると、2つの異なるバージョンのMySqlを使用しています。バージョン6.2.3.0およびバージョン6.3.7.0。この時点から推測できるのは、おそらくあなたはMySqlの異なるバージョンでビルドされたdllを使用している可能性があります。

+0

こんにちは@フィッシャーメイン、私はどうしたらいいですか?私はサーバー内のものが6.2.3.0を実行していると思います。 6.3.7.0は自分のPCからのコピーです。私はbinフォルダからMysql.dataを削除しようとしましたが、私はYSODがdllが見つからないと言っています。 – RicL

+0

@RicL:あなたのPCでサーバと同じバージョンを使用する必要があります。これが唯一の解決策です。 – Fischermaen

+0

6.2.3.0 mysql.dataを取得してプロジェクトに入れる必要があるということですか? – RicL

12

私は同じ問題を抱えていますが、何年も後になりました!

私のサーバーは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> 
+0

私のために働いた。この回答は受け入れられるべきです。 –

+0
+0

も私のために働いた。 – Hamad

関連する問題