私のasp.net-mvcアプリケーションでは、Turbineをセットアップしようとしています。
初期化コードは次のようになります。
public class MvcApplication : TurbineApplication
{
static MvcApplication()
{
ServiceLocatorManager.SetLocatorProvider(() => new UnityServiceLocator());
}
}
そして、私は次のようなレジストラのセットを持っています:
public class UserRepositoryRegistration : IServiceRegistration
{
public void Register(IServiceLocator locator)
{
locator.Register<IUserRepository, Db4oUserRepository>();
}
}
実行しようとすると、SetLocatorProvider の後、登録メソッドに入る前のどこかで次のエラーが発生します。
「/」アプリケーションでサーバー エラーが発生しました。
要求されたタイプの 1 つ以上を読み込めません。詳細については、LoaderExceptions プロパティを取得してください。
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.Reflection.ReflectionTypeLoadException: 1 つ以上の要求された型を読み込めません。詳細については、LoaderExceptions プロパティを取得してください。
ソース エラー: 現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。
スタックトレース:
[ReflectionTypeLoadException: 要求されたタイプの 1 つ以上を読み込めません。詳細については、LoaderExceptions プロパティを取得してください。] System.Reflection.Module._GetTypesInternal(StackCrawlMark& stackMark) +0 System.Reflection.Assembly.GetTypes() +105 MvcTurbine.ComponentModel.DefaultAutoRegistrator.AutoRegister(ServiceRegistration サービス登録) +338 MvcTurbine.Web.RotorContext.ProcessAutomaticRegistration(AutoRegistrationList registrationList) +155 MvcTurbine.Web.RotorContext.AutoRegistrationForContext() +163 MvcTurbine.Web.RotorContext.Turn() +37 MvcTurbine.Web.TurbineApplication.ExecuteContext() +43 MvcTurbine.Web.TurbineApplication.TurnRotor() +65 MvcTurbine.Web.TurbineApplication.Application_Start(オブジェクト送信者、EventArgs e) +85
更新
問題のライブラリを Db4objects.Db4o.Linq.dll に絞り込みました。mvc webapplication で参照されているライブラリの 1 つで、このライブラリを参照として (「使用」していなくても、参照に追加しただけで) 取得するとすぐに、上記のYSOD。他のすべての Db4o ライブラリーは問題なく動作します。
METTRE À JOUR
UnityServiceLocator を WindsosServiceLocator および NinjectServiceLocator と交換しようとしました。まったく同じ結果になるため、問題はどちらのライブラリにも起因しない可能性が高くなります。
OPPDATERING
エラー ページを再作成するには、次の手順を実行するだけで十分です。
- 新しい Mvc アプリケーションを作成します (wat バージョンは関係ありません)
- MvcTurbine を使用するように global.asax.cs コードを変更し、必要な MvcTurbine ライブラリを追加します
。 - Db4objects.Db4o.dll を追加
します。 - Db4objects.Db4o.linq.dll
YSODを追加
これをどこでどのようにデバッグするかについてのアイデアはありますか?