Это не тема MVC.
У меня есть приложение ASP.NET, которое выполняет маршрутизацию URL в методе Application_Start
.
Маршрут выглядит так:
RouteTable.Routes.Add(new Route(
"Profile/{query}",
new RouteValueDictionary() { {"query",string.Empty} },
new GenericRouteHandler("~/ProfileHttpHandler.ashx")
));
A GenericRouteHandler
выглядит орудий GetHttpHandler
с:
var page= (IHttpHandler)BuildManager.CreateInstanceFromVirtualPath(_virtualPath, typeof(IHttpHandler));
...
return page;
А ProfileHttpHandler.ashx - это просто шаблон Visual Studio. Он устанавливает Content-type на «text / plain» и пишет «hello world».
Это приложение работает правильно при отладке в Visual Studio (на сервере разработки ASP.NET). GET http://localhost:59474/Profile/abc123
маршрутизирует к обработчику http, как и ожидалось.
Однако, когда это приложение публикуется на удаленном компьютере с IIS 7 в режиме Integrated Pipeline, процесс завершается ошибкой. Я получаю ошибки HTTP 500 при попытке получить что-нибудь в папке приложений, включая Default.aspx.
Web.Config настроен так:
<system.web>
<httpModules>
<add name="RoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="RoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</modules>
</system.webServer>
Наконец; Я не уверен, является ли это актуальной информацией. В панели управления моего веб-провайдера у меня есть каталог, в котором находится это приложение, настроенный как виртуальный каталог.
Имеет свойства:
- mydomain.ca / routeapp: папка в вашем хостинг-пространстве (domain.ca \ wwwroot \ routeapp)
- Разрешить анонимный доступ: вкл.
- Включить встроенную проверку подлинности Windows: включено.
- Включить базовую аутентификацию: включено.
- ASP: отключено.
- ASP.NET: интегрированный конвейер 2.0.
- PHP: отключено.
- Perl: включено.