在IIS上部署后出现Structuremap 207错误

use*_*520 3 structuremap asp.net-mvc-3

我们正在使用ASP.Net MVC 3.0框架开发一个应用程序.我们使用structuremap在运行时注入对象.为此我们正在使用构造函数注入.我们已经编写了自定义控制器工厂,通过该工厂将控制器的创建委托给该工厂return (Controller)ObjectFactory.GetInstance(controllerType);.通过将接口映射到具体类来定义使用DSL的定义.

当应用程序在visual studio开发服务器上运行时,一切正常.但是当在IIS 7.0上部署相同的应用程序时,在运行时创建对象时会抛出207错误.

任何人都可以帮助我们是否需要更新IIS上的任何设置或帮助调试此问题的步骤?请找到问题的下面的堆栈跟踪

ExceptionStructureMap Exception Code:  
207 Internal exception while creating Instance '83248ea8-b195-4166-8a7d-678e9a677c9f' of PluginType Payrs.Web.Controllers.PaymentRequestController.  
Check the inner exception for more details.Stack Trace :   
 at StructureMap.Pipeline.ConstructorInstance.Build(Type pluginType, BuildSession session, IInstanceBuilder builder)  
    at StructureMap.Pipeline.ConstructorInstance.build(Type pluginType, BuildSession session)    
     at StructureMap.Pipeline.Instance.createRawObject(Type pluginType, BuildSession session)    
      at StructureMap.Pipeline.Instance.Build(Type pluginType, BuildSession session)    
       at StructureMap.Pipeline.ObjectBuilder.Resolve(Type pluginType, Instance instance, BuildSession session)   
         at StructureMap.BuildSession.CreateInstance(Type pluginType, Instance instance)    
          at StructureMap.BuildSession.<>c__DisplayClass3.<.ctor>b__1()    
           at StructureMap.BuildSession.CreateInstance(Type pluginType)    
            at Payrs.Web.Infrastructure.PayrsControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType)  


             **Inner Exception**    

              at Payrs.Web.Controllers.PaymentRequestController..ctor(IPaymentService paymentRequestService, IFundingService fundingService)   
                at lambda_method(Closure , IArguments )     
                at StructureMap.Construction.BuilderCompiler.FuncCompiler`1.<>c__DisplayClass2.<CreateBuilder>b__0(IArguments args)    
                 at StructureMap.Construction.InstanceBuilder.BuildInstance(IArguments args)    
                  at StructureMap.Pipeline.ConstructorInstance.Build(Type pluginType, BuildSession session, IInstanceBuilder builder)
Run Code Online (Sandbox Code Playgroud)

use*_*520 5

通过结构图代码和Web服务器监控进行故障排除后,我能够找出问题所在.

在这种情况下,会发生一个未处理的异常,它会折叠当前的应用程序域并创建新的应用程序域来处理请求.由于整个结构图配置是在应用程序域级别完成的,因此容器定义无效,这就是结构映射无法在构造函数中注入对象的原因.

Elmah帮助我识别了由unhand引导的异常,通过纠正问题和处理异常避免了这个错误.