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

Я написал веб-приложение с ASP.NET MVC. Заводская фабрика контроллеров была заменена контроллером Castle Windsor.

ControllerBuilder.Current.SetControllerFactory (новый WindsorControllerFactory ());

Проблема в том, что я использую общий хостинг, на котором работает II6, поэтому, чтобы заставить MVC работать, мне пришлось заменить MapRoute по умолчанию на

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

[ПРИМЕЧАНИЕ: {controller} .aspx]

Когда я загружаю недавно созданное «веб-приложение ASP.NET MVC» с этим измененным MapRoute, оно работает нормально ... но когда я загружаю свое веб-приложение MVC (которое использует Castle Windsor), в моем браузере появляется следующая ошибка:

URL [http://10.0.0.9/LoseOnlyToday/Home.aspx]


Ошибка сервера в приложении '/ LoseOnlyToday'. IControllerFactory 'WebUI.WindsorControllerFactory' не вернул контроллер для контроллера с именем 'Home.aspx'. Описание: необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительных сведений об ошибке и ее происхождении в коде.

Сведения об исключении: System.InvalidOperationException: IControllerFactory «WebUI.WindsorControllerFactory» не вернул контроллер для контроллера с именем «Home.aspx».

Ошибка источника:

Необработанное исключение было создано во время выполнения текущего веб-запроса. Информацию о происхождении и местонахождении исключения можно определить с помощью трассировки стека исключений ниже.

Трассировки стека:

[InvalidOperationException: IControllerFactory 'WebUI.WindsorControllerFactory' не возвратил контроллер для контроллера с именем 'Home.aspx'.] System.Web.Mvc.MvcHandler.ProcessRequest (HttpContextBase httpContext) +304 System.Web.Mvc.MvcRequest (HttpContext httpContext) +54 System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest (HttpContext httpContext) +7 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Web. HttpApplication.ExecuteStep (шаг IExecutionStep, логическое значение и завершено синхронно) +75

Информация о версии: Microsoft .NET Framework Версия: 2.0.50727.3053; Версия ASP.NET: 2.0.50727.3053


Я предполагаю, что Castle Windsor не любит интерпретировать "Home.aspx" как контроллер ...

Как я могу это исправить ?


person etangreal    schedule 14.08.2009    source источник


Ответы (1)


Хорошо, я узнал, почему он не работает ... когда вы загрузили файлы веб-сайта, я загрузил все, но после внесения некоторых изменений я загрузил только «Global.asax» и «Global.asax.cs». Дело в том, что файлы .cs не следует даже выгружать ... проект компилируется и сохраняется в папке bin как ".dll", и этот файл должен быть загружен, чтобы изменения вступили в силу ...

person etangreal    schedule 15.08.2009