C# asp mvc 2结构映射在部署时不工作
我在我的asp mvc站点中使用结构图,这是我第一次尝试部署到II6上 基本依赖结构非常典型: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) {
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