1

プッシュ通知を処理する Web サービスがあります。再構築した後、起動するとクラッシュします。ログでは、これは次のスタック トレースです。

Stack Trace at JDS.Booj.Mobile.MySqlStorageProvider.Providers.BoojMobileStorage.<>c__DisplayClasse6.<FindOrCreateEnvironment>b__e4(MySqlConnection connection) in d:\TeamCityWork\a1d7899dc094839e\MySqlStorageProvider\Providers\BoojMobileStorage.cs:line 125
   at JDS.Booj.Mobile.MySqlCommon.MySqlDatabaseUtils.RunInConnection(String connectionString, CodeToRunInConnection code) in d:\TeamCityWork\a1d7899dc094839e\MySqlCommon\MySqlDatabaseUtils.cs:line 334
   at JDS.Booj.Mobile.MySqlStorageProvider.Providers.BoojMobileStorage.FindOrCreateEnvironment(BoojMobileEnvironment environment) in d:\TeamCityWork\a1d7899dc094839e\MySqlStorageProvider\Providers\BoojMobileStorage.cs:line 139
   at JDS.Booj.Mobile.Library.Environments.EnvironmentOperations.CreateCurrentEnvironmentIfNotExists() in c:\Users\connl1\Documents\bitbucket\booj-mobile-server\Library\Environments\EnvironmentOperations.cs:line 113
   at JDS.Booj.Mobile.Library.MobileDatabaseHelper.InitializeDatabase() in c:\Users\connl1\Documents\bitbucket\booj-mobile-server\Library\BoojMobileDatabaseHelper.cs:line 41
   at JDS.Booj.Mobile.Library.BoojMobileStartup.MobileInitialize() in c:\Users\connl1\Documents\bitbucket\booj-mobile-server\Library\BoojMobileStartup.cs:line 117
   at JDS.Booj.Mobile.Library.BoojMobileStartup.DoInitialization() in c:\Users\connl1\Documents\bitbucket\booj-mobile-server\Library\BoojMobileStartup.cs:line 96
   at JDS.Booj.Mobile.Library.BoojMobileStartup.Initialize() in c:\Users\connl1\Documents\bitbucket\booj-mobile-server\Library\BoojMobileStartup.cs:line 70
Inner Exception: Could not load type 'JDS.Booj.Mobile.Common.SqlBuilder.SqlBuilder`1' from assembly 'JDS.Booj.Mobile.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null'.
Source: JDS.Booj.Mobile.MySqlStorageProvider
Stack Trace:    at JDS.Booj.Mobile.MySqlStorageProvider.DataMappers.BoojMobileMappers.BoojMobileEnvironmentMapper..cctor()

私が知る限り、間違ったディレクトリ (つまり、d:\teamcitywork の下にあるもの) でいくつかのメソッドを呼び出そうとしていますが、このディレクトリは存在しません。

ソリューション エクスプローラーでは正しいファイルにパスが設定されているので、途方にくれます。

正しいファイルを指す方法や問題を解決する方法を知っている人はいますか?

4

1 に答える 1

1

d:\teamcityworkPDB がデプロイされているため、パスが表示されます。これは、誰かがデバッグ モードでビルドしてデプロイしたか (可能性が高い)、または誤ってサーバーにコピーしたか (可能性は低い) を意味します。

エラー メッセージについてCould not load typeですが、正しいバージョンのJDS.Booj.Mobile.CommonDLL がサーバーにデプロイされていることを確認できますか? 私の推測では、それが見つからないか、間違ったバージョンがサーバー上にあり、それが原因でこのエラーが発生しています。

アップデート:

common.dllソースコードを持っているファイルはありますか? 名前 JDS.Booj.Mobile.Common.SqlBuilder空間がデプロイされたバージョンの DLL に含まれていないか、なんらかの方法で変更されてロードできなくなっているようです。

ReflectorまたはILSpyはありますか? これらのツールを使用すると、DLL を逆コンパイルして、DLL 内のロジックを確認できます。SqlBuilder次に、デプロイされたコードの型をマシン上の型と比較できます。

于 2013-08-30T03:58:09.080 に答える