ASP.NET MVC / Castle Windsor / IIS6 / Modified MapRoute {controller} .aspx

时间:2009-08-14 14:30:08

标签: asp.net-mvc iis-6 castle-windsor

我用ASP.NET MVC编写了一个Web应用程序。默认的ControllerFactory已被Castle Windsor的Controller

取代

ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory());

问题是我正在使用运行II6的共享主机,所以为了让MVC正常工作,我必须用

替换默认的MapRoute
        routes.MapRoute(
            "Default",
            "{controller}.aspx/{action}/{id}",
            new { controller = "Home", action = "Index", id = "" }
        );

[注意:{controller} .aspx ]

当我使用这个经过修改的MapRoute上传新创建的“ASP.NET MVC Web应用程序”时,它运行正常...但是当我上传我的MVC Web应用程序(使用Castle Windsor)时 我在浏览器中收到以下错误:

网址[http://10.0.0.9/LoseOnlyToday/Home.aspx]


异常详细信息:System.InvalidOperationException:IControllerFactory'WebUI.WindsorControllerFactory'未返回名为'Home.aspx'的控制器的控制器。

来源错误:

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

堆栈追踪:

[InvalidOperationException:IControllerFactory'WebUI.WindsorControllerFactory'没有为名为'Home.aspx'的控制器返回控制器。    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

版本信息:Microsoft .NET Framework版本:2.0.50727.3053; ASP.NET版本:2.0.50727.3053


我认为Castle Windsor不喜欢将“Home.aspx”解释为控制器......

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

好的,所以我发现了为什么它不起作用......当我上传网站文件时我最初上传了所有内容 - 但在进行了一些更改之后我只上传了“Global.asax”和“Global.asax.cs”。事情是.cs文件甚至不应该被上传...项目被编译并存储在bin文件夹中作为“.dll”,并且必须上传此文件才能使更改生效...