asp.net-mvc-3 - 在 IIS 上部署后出现 Structuremap 207 错误

标签 asp.net-mvc-3 structuremap

我们正在使用 ASP.Net MVC 3.0 框架开发应用程序。我们正在使用结构图在运行时注入(inject)对象。为此,我们使用构造函数注入(inject)。我们已经编写了自定义 Controller 工厂,其中 Controller 的创建通过 return (Controller)ObjectFactory.GetInstance(controllerType); 委托(delegate)给这个工厂。通过将接口(interface)与具体类映射,使用 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)

最佳答案

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

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

Elmah 帮助我识别了未处理的异常,通过更正问题和处理异常避免了这个错误。

关于asp.net-mvc-3 - 在 IIS 上部署后出现 Structuremap 207 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14038678/

相关文章:

asp.net - 如何在asp.net MVC 3中获取当前 View 名称?

asp.net - asp.net MVC 3 Dropdownlist中的多重选择

wpf - MVVM 模型验证和数据绑定(bind)?

dependency-injection - DotNetNuke 模块开发 - 使用 StructureMap 的 IoC

c# - 起订量/结构图基础知识

asp.net-mvc - 即使用户输入的数据没有错误,我的模型状态也始终无效

c# - 使用 asp.net mvc 3 将文件上传到文件夹时访问被拒绝?

c# - 如何在 structuremap 3 中进行 setter 注入(inject)

c# - 如何使用 StructureMap 通过代码定义默认构造函数?

c# - StructureMap 开放通用类型