C# asp mvc 2结构映射在部署时不工作

C# asp mvc 2结构映射在部署时不工作,c#,.net,asp.net-mvc,iis,structuremap,C#,.net,Asp.net Mvc,Iis,Structuremap,我在我的asp mvc站点中使用结构图,这是我第一次尝试部署到II6上 基本依赖结构非常典型: public ControlMController(IControlMService controlMservice) { this._controlMservice = controlMservice; } ... public ControlMService(IControlMRepository repo) {

我在我的asp mvc站点中使用结构图,这是我第一次尝试部署到II6上

基本依赖结构非常典型:

    public ControlMController(IControlMService controlMservice)
    {
        this._controlMservice = controlMservice;
    }

    ...

    public ControlMService(IControlMRepository repo)
    {
        this._repo = repo;
    }

    ...

    public SQLControlMRepository (CTRLMDataContext dataContext)
    {
        _db = dataContext;
    }
我的structureMap注册表是这样的

        For<IControlMService>().Use<ControlMService>();
        For<IControlMRepository>().Use<SQLControlMRepository>();
        //For<IControlMRepository>().Use<TestControlMRepository>();
        SelectConstructor<CTRLMDataContext>(() => new CTRLMDataContext());
        For<CTRLMDataContext>().LifecycleIs(new HybridLifecycle()).Use<CTRLMDataContext>();
这在开发服务器上100%有效,但在服务器上部署到IIS 6时,它不起作用

具有所有依赖项的ControlMController返回以下异常:

[InvalidOperationException: The IControllerFactory 'SupportTool.web.Controllers.ControllerFactory' did not return a controller for the name 'ControlM'.]
   System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) +304
   System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext) +54
   System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) +7
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
所有其他依赖项为0的控制器在服务器上都可以正常工作,所以structuremap的安装必须稍微正常一些,只是不完全正常://p>自动应答

问题是,我的datacontext的构造函数正在抛出,因为数据库域名没有完全限定,而我的pc解决了这个问题,但服务器无法

包含该信息的内部异常未显示在错误页面上


:)

类型的ctor引发的异常应反映为StructureMap异常中的内部异常。我理解搜索内部异常可能是一件痛苦的事情,但是StructureMap在它遇到的问题的上下文方面做得相当好。因为在您的CTOR中通常没有太多的逻辑。人们经常会遇到与您的类型的CTOR无关的抛出,但SM之类的东西需要进行抽象配置。@KevM,谢谢,我想我需要安装NLog或log4net来获取完整的异常详细信息,因为默认的抛出不显示内部异常。你知道有没有一个简单的方法可以让它显示内部异常?不知道如何在没有看到问题的异常输出的情况下提供帮助。我不使用任何日志框架来找出StructureMap配置的错误。我经常写一些测试来帮助我理解这个问题。
[InvalidOperationException: The IControllerFactory 'SupportTool.web.Controllers.ControllerFactory' did not return a controller for the name 'ControlM'.]
   System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) +304
   System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext) +54
   System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) +7
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75