2

組み込みの VS サーバーを使用して正常に動作するカスタム HttpModule がありますが、セットアップした IIS 7.5 サーバーからは実行されません。C# ファイルは呼び出されません。モジュールは system.web に含まれていますが、 でモジュールへの別の参照を追加するsystem.webserverと、プロジェクトが読み込まれず、structuremap 202 例外コードでエラーが発生します。

このエラーの理由は、いつ初期化されたかに関係しているとStructuremap思われますが、それを理解できないようです。ファイル内のObjectFactoryを初期化すると、このモジュールをロードしようとするまで正常に動作します。Application_Startglobal.asax

どんな助けでも大歓迎です。

エラーは次のとおりです。

 StructureMap Exception Code:  202
No Default Instance defined for PluginFamily testproject.test.Core.DataAccess.IAccountRepository, testproject.test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
   System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache) +98
   System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) +241
   System.Activator.CreateInstance(Type type, Boolean nonPublic) +69
   System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +1136
   System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +111
   System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture) +23
   System.Web.HttpRuntime.CreateNonPublicInstance(Type type, Object[] args) +60
   System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList) +231
   System.Web.HttpApplication.GetModuleCollection(IntPtr appContext) +1365
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +95
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +194
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +339
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +253

[HttpException (0x80004005): Exception has been thrown by the target of an invocation.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9090876
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +97
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +256

更新 - 呼び出しようとしているモジュールでオブジェクト ファクトリを初期化すると、サイトが再度読み込まれ、ハンドラーが機能します。ただし、読み込まれたすべてのページで次のコードが呼び出されると、非効率的で不必要に思えます。以前は、グローバル ファイルの application_start で一度だけロードできました。

            ObjectFactory.Initialize(x =>
        {
            x.UseDefaultStructureMapConfigFile = true;
        });
4

0 に答える 0