簡體   English   中英

部署時,asp mvc 2結構圖不起作用

[英]asp mvc 2 structure map not working when deployed

我在我的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>();

我的控制器工廠如下所示:

public class ControllerFactory : DefaultControllerFactory 
{
    protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
    {
        try
        {
            if (controllerType == null) return base.GetControllerInstance(requestContext,controllerType);
            return ObjectFactory.GetInstance(controllerType) as IController;
        }
        catch
        {
            System.Diagnostics.Debug.WriteLine(ObjectFactory.WhatDoIHave());
            return null;
        }
    }
}

這在開發服務器上可以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的安裝必須可以正常工作,但不能完全:/

自我解答!

問題是我的datacontext的構造函數被拋出是因為數據庫域名沒有完全限定,而當我的PC解析它時,服務器卻無法。

包含信息的內部異常未顯示在錯誤頁面上!

:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM