Использование ASP.NET MVC с разными версиями служб IIS (VB)Using ASP.NET MVC with Different Versions of IIS (VB)

корпорацией Майкрософтby Microsoft

В этом уроке вы узнаете, как использовать ASP.NET MVC и URL-адрес, с различными версиями информационных служб Интернета.In this tutorial, you learn how to use ASP.NET MVC, and URL Routing, with different versions of Internet Information Services. Вы узнаете различные стратегии использования ASP.NET MVC с IIS 7.0 (классический режим), IIS 6.0 и более ранними версиями IIS.You learn different strategies for using ASP.NET MVC with IIS 7.0 (classic mode), IIS 6.0, and earlier versions of IIS.

Платформа mVC ASP.NET зависит от ASP.NET маршрутизируя маршруты запросов браузера к действиям контроллера.The ASP.NET MVC framework depends on ASP.NET Routing to route browser requests to controller actions. Для того, чтобы воспользоваться ASP.NET routing, возможно, придется выполнить дополнительные шаги конфигурации на веб-сервере.In order to take advantage of ASP.NET Routing, you might have to perform additional configuration steps on your web server. Все зависит от версии Интернет-информационных служб (IIS) и режима обработки запросов для вашего приложения.It all depends on the version of Internet Information Services (IIS) and the request processing mode for your application.

Вот краткое изложение различных версий IIS:Here's a summary of the different versions of IIS:

  • IIS 7.0 (интегрированный режим) - Нет специальной конфигурации, необходимой для использования ASP.NET маршрута.IIS 7.0 (integrated mode) - No special configuration necessary to use ASP.NET Routing.
  • IIS 7.0 (классический режим) - Вам необходимо выполнить специальную конфигурацию для использования ASP.NET реутриации.IIS 7.0 (classic mode) - You need to perform special configuration to use ASP.NET Routing.
  • IIS 6.0 или ниже - Вам нужно выполнить специальную конфигурацию для использования ASP.NET.IIS 6.0 or below - You need to perform special configuration to use ASP.NET Routing.

Последней версией IIS является версия 7.5 (на Win7).The latest version of IIS is version 7.5 (on Win7). IIS 7 IIS входит в Windows Server 2008 и VISTA/SP1 и выше.IIS 7 of IIS is included with Windows Server 2008 AND VISTA/SP1 and higher. Вы также можете установить IIS 7.0 на любой версии операционной системы Vista, кроме Home Basic (см.). https://technet.microsoft.com/library/cc731179%28WS.10%29.aspxYou also can install IIS 7.0 on any version of the Vista operating system except Home Basic (see https://technet.microsoft.com/library/cc731179%28WS.10%29.aspx).

IIS 7.0 поддерживает два режима обработки запросов.IIS 7.0 supports two modes for processing requests. Вы можете использовать интегрированный режим или классический режим.You can use integrated mode or classic mode. Вам не нужно выполнять какие-либо специальные шаги конфигурации при использовании IIS 7.0 в интегрированном режиме.You don't need to perform any special configuration steps when using IIS 7.0 in integrated mode. Тем не менее, при использовании IIS 7.0 в классическом режиме необходимо выполнять дополнительную конфигурацию.However, you do need to perform additional configuration when using IIS 7.0 in classic mode.

Microsoft Windows Server 2003 включает в себя IIS 6.0.Microsoft Windows Server 2003 includes IIS 6.0. Вы не можете обновить IIS 6.0 до IIS 7.0 при использовании операционной системы Windows Server 2003.You cannot upgrade IIS 6.0 to IIS 7.0 when using the Windows Server 2003 operating system. При использовании IIS 6.0 необходимо выполнять дополнительные шаги конфигурации.You must perform additional configuration steps when using IIS 6.0.

Microsoft Windows XP Professional включает iIS 5.1.Microsoft Windows XP Professional includes IIS 5.1. При использовании IIS 5.1 необходимо выполнять дополнительные шаги конфигурации.You must perform additional configuration steps when using IIS 5.1.

Наконец, Microsoft Windows 2000 и Microsoft Windows 2000 Professional включает IIS 5.0.Finally, Microsoft Windows 2000 and Microsoft Windows 2000 Professional includes IIS 5.0. При использовании IIS 5.0 необходимо выполнять дополнительные шаги конфигурации.You must perform additional configuration steps when using IIS 5.0.

Интегрированный против классического режимаIntegrated versus Classic Mode

IIS 7.0 может обрабатывать запросы с помощью двух различных режимов обработки запросов: интегрированного и классического.IIS 7.0 can process requests using two different request processing modes: integrated and classic. Интегрированный режим обеспечивает лучшую производительность и больше возможностей.Integrated mode provides better performance and more features. Классический режим включен для обратной совместимости с более ранними версиями IIS.Classic mode is included for backwards compatibility with earlier versions of IIS.

Режим обработки запросов определяется пулом приложений.The request processing mode is determined by the application pool. Можно определить, какой режим обработки используется определенным веб-приложением, определив пул приложений, связанный с приложением.You can determine which processing mode is being used by a particular web application by determining the application pool associated with the application. Выполните следующие действия.Follow these steps:

  1. Запуск менеджера информационных услуг ИнтернетаLaunch the Internet Information Services Manager
  2. В окне подключения выберите приложениеIn the Connections window, select an application
  3. В окне «Действия» щелкните ссылку «Основные настройки», чтобы открыть диалоговую будку «Edit Application» (см. рисунок 1)In the Actions window, click the Basic Settings link to open the Edit Application dialog box (see Figure 1)
  4. Примите к сведению выбранный пул приложений.Take note of the Application pool selected.

По умолчанию IIS настроен для поддержки двух пулов приложений: DefaultAppPool и Classic .NET AppPool.By default, IIS is configured to support two application pools: DefaultAppPool and Classic .NET AppPool. Если выбран DefaultAppPool, приложение работает в режиме интегрированной обработки запросов.If DefaultAppPool is selected, then your application is running in integrated request processing mode. Если выбран Классический .NET AppPool, ваше приложение работает в классическом режиме обработки запросов.If Classic .NET AppPool is selected, your application is running in classic request processing mode.

Диалоговое окно New Project (Новый проект)The New Project dialog box

Рисунок 1: Обнаружение режима обработки запроса(Нажмите, чтобы просмотреть полноразмерное изображение)Figure 1: Detecting the request processing mode(Click to view full-size image)

Обратите внимание, что можно изменить режим обработки запросов в диалоговом окне Edit Application.Notice that you can modify the request processing mode within the Edit Application dialog box. Нажмите кнопку «Выберите» и измените пул приложений, связанный с приложением.Click the Select button and change the application pool associated with the application. Поймите, что при изменении ASP.NET приложения с классического на интегрированный режим возникают проблемы совместимости.Realize that there are compatibility issues when changing an ASP.NET application from classic to integrated mode. Дополнительные сведения см. в следующих статьях:For more information, see the following articles:

Если ASP.NET приложение использует DefaultAppPool, то вам не нужно выполнять какие-либо дополнительные шаги, чтобы получить ASP.NET routing (и, следовательно, ASP.NET MVC) для работы.If an ASP.NET application is using the DefaultAppPool, then you don't need to perform any additional steps to get ASP.NET Routing (and therefore ASP.NET MVC) to work. Однако, если приложение ASP.NET настроено на использование Classic .NET AppPool, то продолжайте читать, у вас есть больше работы.However, if the ASP.NET application is configured to use the Classic .NET AppPool then keep reading, you have more work to do.

Использование ASP.NET MVC со старыми версиями IISUsing ASP.NET MVC with Older Versions of IIS

Если вам нужно использовать ASP.NET MVC со старой версией IIS, чем IIS 7.0, или вам нужно использовать IIS 7.0 в классическом режиме, то у вас есть два варианта.If you need to use ASP.NET MVC with an older version of IIS than IIS 7.0, or you need to use IIS 7.0 in classic mode, then you have two options. Во-первых, можно изменить таблицу маршрутов, чтобы использовать расширения файлов.First, you can modify the route table to use file extensions. Например, вместо того, чтобы запрашивать URL-адрес, например /Store/Подробности, вы будете запрашивать URL-адрес, например /Store.aspx/Details.For example, instead of requesting a URL like /Store/Details, you would request a URL like /Store.aspx/Details.

Второй вариант заключается в создании так называемой карты сценария подстановочных знаков.The second option is to create something called a wildcard script map. Карта скриптов подстановочных знаков позволяет сопоставить каждый запрос в ASP.NET фреймворке.A wildcard script map enables you to map every request into the ASP.NET framework.

Если у вас нет доступа к веб-серверу (например, ваше приложение ASP.NET MVC размещается поставщиком услуг Интернета), то вам нужно будет использовать первый вариант.If you don't have access to your web server (for example, your ASP.NET MVC application is being hosted by an Internet Service Provider) then you'll need to use the first option. Если вы не хотите изменять внешний вид URL-адресов и у вас есть доступ к веб-серверу, то вы можете использовать второй вариант.If you don't want to modify the appearance of your URLs, and you have access to your web server, then you can use the second option.

Мы подробно изучаем каждый вариант в следующих разделах.We explore each option in detail in the following sections.

Добавление расширений в таблицу маршрутовAdding Extensions to the Route Table

Самый простой способ заставить ASP.NET маршрутизатор для работы со старыми версиями IIS — изменить таблицу маршрутов в файле Global.asax.The easiest way to get ASP.NET Routing to work with older versions of IIS is to modify your route table in the Global.asax file. Файл По умолчанию и неизмененный Global.asax в листинге 1 настраивает один маршрут под названием маршрут по умолчанию.The default and unmodified Global.asax file in Listing 1 configures one route named the Default route.

Список 1 - Global.asax (неизменен)Listing 1 - Global.asax (unmodified)

Public Class MvcApplication

        Inherits System.Web.HttpApplication 

        Shared Sub RegisterRoutes(ByVal routes As RouteCollection)

            routes.IgnoreRoute("{resource}.axd/{*pathInfo}") 

            ' MapRoute takes the following parameters, in order:

            ' (1) Route name

            ' (2) URL with parameters

            ' (3) Parameter defaults

            routes.MapRoute( _

                "Default", _

                "{controller}/{action}/{id}", _

                New With {.controller = "Home", .action = "Index", .id = ""} _

            ) 

        End Sub 

        Sub Application_Start()

            RegisterRoutes(RouteTable.Routes)

        End Sub

    End Class

Маршрут по умолчанию, настроенный в листинге 1, позволяет направлять URL-адреса, которые выглядят следующим образом:The Default route configured in Listing 1 enables you to route URLs that look like this:

/Дом/Индекс/Home/Index

/Продукт/Подробности/3/Product/Details/3

/Product/Product

К сожалению, старые версии IIS не передают эти запросы в ASP.NET рамки.Unfortunately, older versions of IIS won't pass these requests to the ASP.NET framework. Таким образом, эти запросы не будут направляться на контроллер.Therefore, these requests won't get routed to a controller. Например, если вы сделаете запрос браузера на URL /Home/Index, то вы получите страницу ошибки на рисунке 2.For example, if you make a browser request for the URL /Home/Index then you'll get the error page in Figure 2.

Диалоговое окно New Project (Новый проект)The New Project dialog box

Рисунок 2: Получение 404 Не найденная ошибка(Нажмите, чтобы посмотреть полноразмерное изображение)Figure 2: Receiving a 404 Not Found error(Click to view full-size image)

Более старые версии IIS отображают только определенные запросы в ASP.NET рамки.Older versions of IIS only map certain requests to the ASP.NET framework. Запрос должен быть для URL с правом расширения файла.The request must be for a URL with the right file extension. Например, запрос на /SomePage.aspx отображается в ASP.NET фреймворке.For example, a request for /SomePage.aspx gets mapped to the ASP.NET framework. Тем не менее, запрос на /SomePage.htm не делает.However, a request for /SomePage.htm does not.

Поэтому, чтобы ASP.NET маршрутизатор в работу, мы должны изменить маршрут по умолчанию таким образом, чтобы он включил расширение файла, которое отображается в ASP.NET фреймворк.Therefore, to get ASP.NET Routing to work, we must modify the Default route so that it includes a file extension that is mapped to the ASP.NET framework.

Это делается с registermvc.wsfпомощью сценария с именем .This is done using a script named registermvc.wsf. Он был включен в ASP.NET MVC 1 релиз в C:\Program Files\Microsoft ASP.NET\ASP.NET MVC\Scripts, но по состоянию на http://aspnet.codeplex.com/releases/view/39978ASP.NET 2 этот сценарий был перенесен на ASP.NET Futures, доступные на .It was included with the ASP.NET MVC 1 release in C:\Program Files\Microsoft ASP.NET\ASP.NET MVC\Scripts, but as of ASP.NET 2 this script has been moved to the ASP.NET Futures, available at http://aspnet.codeplex.com/releases/view/39978.

Выполнение этого скрипта регистрирует новое расширение .mvc с IIS.Executing this script registers a new .mvc extension with IIS. После регистрации расширения .mvc можно изменить маршруты в файле Global.asax, чтобы маршруты использовали расширение .mvc.After you register the .mvc extension, you can modify your routes in the Global.asax file so that the routes use the .mvc extension.

Модифицированный файл Global.asax в листинге 2 работает со старыми версиями IIS.The modified Global.asax file in Listing 2 works with older versions of IIS.

Листинг 2 - Global.asax (изменен с расширениями)Listing 2 - Global.asax (modified with extensions)

Public Class MvcApplication

        Inherits System.Web.HttpApplication 

        Shared Sub RegisterRoutes(ByVal routes As RouteCollection)

            routes.IgnoreRoute("{resource}.axd/{*pathInfo}") 

            ' MapRoute takes the following parameters, in order:

            ' (1) Route name

            ' (2) URL with parameters

            ' (3) Parameter defaults

            routes.MapRoute( _

                "Default", _

                "{controller}.mvc/{action}/{id}", _

                New With {.controller = "Home", .action = "Index", .id = ""} _

            ) 

            routes.MapRoute( _

                "Root", _

                "", _

                New With {.controller = "Home", .action = "Index", .id = ""} _

            ) 

        End Sub 

        Sub Application_Start()

            RegisterRoutes(RouteTable.Routes)

        End Sub

    End Class

Важно: не забудьте построить ASP.NET MVC-приложение после изменения файла Global.asax.Important: remember to build your ASP.NET MVC Application again after changing the Global.asax file.

В списке 2 есть два важных изменения в файле Global.asax.There are two important changes to the Global.asax file in Listing 2. В настоящее время в Global.asax определены два маршрута.There are now two routes defined in the Global.asax. Шаблон URL для маршрута по умолчанию, первый маршрут, теперь выглядит следующим образом:The URL pattern for the Default route, the first route, now looks like:

(контролер).mvc/(действия) /id){controller}.mvc/{action}/{id}

Добавление расширения .mvc изменяет тип файлов, которые перехватывает модуль ASP.NET.The addition of the .mvc extension changes the type of files that the ASP.NET Routing module intercepts. С этим изменением приложение mVC ASP.NET теперь направляет запросы следующим образом:With this change, the ASP.NET MVC application now routes requests like the following:

/Home.mvc/Index//Home.mvc/Index/

/Product.mvc/Подробности/3/Product.mvc/Details/3

/Product.mvc//Product.mvc/

Второй маршрут, Корневой маршрут, является новым.The second route, the Root route, is new. Этот шаблон URL для маршрута Root является пустой строкой.This URL pattern for the Root route is an empty string. Этот маршрут необходим для сопоставления запросов, сделанных с корнем приложения.This route is necessary for matching requests made against the root of your application. Например, маршрут Root будет соответствовать запросу, который выглядит следующим образом:For example, the Root route will match a request that looks like this:

http://www.YourApplication.com/

После внесения этих изменений в таблицу маршрутов необходимо убедиться, что все ссылки в приложении совместимы с этими новыми шаблонами URL.After making these modifications to your route table, you'll need to make sure that all of the links in your application are compatible with these new URL patterns. Другими словами, убедитесь, что все ваши ссылки включают расширение .mvc.In other words, make sure that all of your links include the .mvc extension. Если вы используете метод помощника Html.ActionLink() для генерации ссылок, то вам не нужно вносить какие-либо изменения.If you use the Html.ActionLink() helper method to generate your links, then you should not need to make any changes.

Вместо использования скрипта registermvc.wcf можно добавить новое расширение к IIS, которое отображается в ASP.NET рамки вручную.Instead of using the registermvc.wcf script, you can add a new extension to IIS that is mapped to the ASP.NET framework by hand. При добавлении нового расширения убедитесь, что флажок с пометкой Verify, что файл существует, не проверен.When adding a new extension yourself, make sure that the checkbox labeled Verify that file exists is not checked.

Хостинг-серверHosted Server

У вас не всегда есть доступ к веб-серверу.You don't always have access to your web server. Например, если вы размещаете свое приложение mVC ASP.NET с помощью интернет-хостинга, то вы не обязательно будете иметь доступ к IIS.For example, if you are hosting your ASP.NET MVC application using an Internet Hosting Provider, then you won't necessarily have access to IIS.

В этом случае следует использовать одно из существующих расширений файлов, отображено в ASP.NET фреймворка.In that case, you should use one of the existing file extensions that are mapped to the ASP.NET framework. Примеры расширений файлов, отображемых для ASP.NET включают расширения .aspx, .axd и .ashx.Examples of file extensions mapped to ASP.NET include the .aspx, .axd, and .ashx extensions.

Например, в измененном файле Global.asax в листинге 3 используется расширение .aspx вместо расширения .mvc.For example, the modified Global.asax file in Listing 3 uses the .aspx extension instead of the .mvc extension.

Листинг 3 - Global.asax (изменен с расширениями .aspx)Listing 3 - Global.asax (modified with .aspx extensions)

Public Class MvcApplication

        Inherits System.Web.HttpApplication 

        Shared Sub RegisterRoutes(ByVal routes As RouteCollection)

            routes.IgnoreRoute("{resource}.axd/{*pathInfo}") 

            ' MapRoute takes the following parameters, in order:

            ' (1) Route name

            ' (2) URL with parameters

            ' (3) Parameter defaults

            routes.MapRoute( _

                "Default", _

                "{controller}.aspx/{action}/{id}", _

                New With {.controller = "Home", .action = "Index", .id = ""} _

            ) 

            routes.MapRoute( _

                "Root", _

                "", _

                New With {.controller = "Home", .action = "Index", .id = ""} _

            ) 

        End Sub 

        Sub Application_Start()

            RegisterRoutes(RouteTable.Routes)

        End Sub

    End Class

Файл Global.asax в листинге 3 точно такой же, как и предыдущий файл Global.asax, за исключением того факта, что он использует расширение .aspx вместо расширения .mvc.The Global.asax file in Listing 3 is exactly the same as the previous Global.asax file except for the fact that it uses the .aspx extension instead of the .mvc extension. Вам не нужно выполнять какие-либо настройки на удаленном веб-сервере, чтобы использовать расширение .aspx.You don't have to perform any setup on your remote web server to use the .aspx extension.

Создание карты сценария УайлдкартыCreating a Wildcard Script Map

Если вы не хотите изменять URL-адреса для ASP.NET приложения MVC, и у вас есть доступ к вашему веб-серверу, то у вас есть дополнительная опция.If you don't want to modify the URLs for your ASP.NET MVC application, and you have access to your web server, then you have an additional option. Можно создать карту сценария подстановочных знаков, которая отображает все запросы на веб-сервер в ASP.NET рамки.You can create a wildcard script map that maps all requests to the web server to the ASP.NET framework. Таким образом, вы можете использовать таблицу маршрутов по умолчанию ASP.NET MVC с IIS 7.0 (в классическом режиме) или IIS 6.0.That way, you can use the default ASP.NET MVC route table with IIS 7.0 (in classic mode) or IIS 6.0.

Имейте в виду, что эта опция заставляет IIS перехватывать каждый запрос, сделанный против веб-сервера.Be aware that this option causes IIS to intercept every request made against the web server. Это включает в себя запросы на изображения, классические страницы ASP и HTML-страницы.This includes requests for images, classic ASP pages, and HTML pages. Таким образом, включение карты сценария подстановочных знаков для ASP.NET имеет последствия для производительности.Therefore, enabling a wildcard script map to ASP.NET does have performance implications.

Вот как вы включите карту сценария подстановочных знаков для IIS 7.0:Here's how you enable a wildcard script map for IIS 7.0:

  1. Выберите приложение в окне подключенияSelect your application in the Connections window
  2. Убедитесь, что представление функций выбраноMake sure that the Features view is selected
  3. Дважды щелкните кнопку Обработчик картDouble-click the Handler Mappings button
  4. Нажмите на ссылку Добавить Уайлдкард Скрипт Карта (см. Рисунок 3)Click the Add Wildcard Script Map link (see Figure 3)
  5. Введите путь к_файлу aspnet isapi.dll (Вы можете скопировать этот путь с карты скриптов PageHandlerFactory)Enter the path to the aspnet_isapi.dll file (You can copy this path from the PageHandlerFactory script map)
  6. Введите имя MVCEnter the name MVC
  7. Нажмите кнопку OKClick the OK button

Диалоговое окно New Project (Новый проект)The New Project dialog box

Рисунок 3: Создание карты сценария подстановочного знака с IIS 7.0(Нажмите, чтобы просмотреть полноразмерное изображение)Figure 3: Creating a wildcard script map with IIS 7.0(Click to view full-size image)

Выполните следующие действия, чтобы создать карту сценария подстановочных знаков с IIS 6.0:Follow these steps to create a wildcard script map with IIS 6.0:

  1. Нажмите правой кнопкой мыши на веб-сайте и выберите СвойстваRight-click a website and select Properties
  2. Выберите вкладку «Домашний каталог»Select the Home Directory tab
  3. Нажмите кнопку КонфигурацияClick the Configuration button
  4. Выберите вкладку КартированиеSelect the Mappings tab
  5. Нажмите кнопку Вставить (см. рисунок 4)Click the Insert button (see Figure 4)
  6. Вставьте путь к aspnet_isapi.dll в исполняемое поле (вы можете скопировать этот путь с карты скрипта для файлов .aspx)Paste the path to the aspnet_isapi.dll into the Executable field (you can copy this path from the script map for .aspx files)
  7. Отменить флажок с пометкой Verify, что файл существуетUncheck the checkbox labeled Verify that file exists
  8. Нажмите кнопку OKClick the OK button

Диалоговое окно New Project (Новый проект)The New Project dialog box

Рисунок 4: Создание карты сценария подстановочного знака с IIS 6.0(Нажмите, чтобы просмотреть полноразмерное изображение)Figure 4: Creating a wildcard script map with IIS 6.0(Click to view full-size image)

После включения карт скриптов подстановочных знаков необходимо изменить таблицу маршрутов в файле Global.asax таким образом, чтобы она включала корневой маршрут.After you enable wildcard script maps, you need to modify the route table in the Global.asax file so that it includes a Root route. В противном случае вы получите страницу ошибки на рисунке 5 при запросе на корневую страницу приложения.Otherwise, you'll get the error page in Figure 5 when you make a request for the root page of your application. Модифицированный файл Global.asax можно использовать в листинге 4.You can use the modified Global.asax file in Listing 4.

Диалоговое окно New Project (Новый проект)The New Project dialog box

Рисунок 5: Отсутствует ошибка корневого маршрута(Нажмите, чтобы просмотреть полноразмерное изображение)Figure 5: Missing Root route error(Click to view full-size image)

Список 4 - Global.asax (изменен с корневым маршрутом)Listing 4 - Global.asax (modified with Root route)

Public Class MvcApplication

        Inherits System.Web.HttpApplication 

        Shared Sub RegisterRoutes(ByVal routes As RouteCollection)

            routes.IgnoreRoute("{resource}.axd/{*pathInfo}") 

            ' MapRoute takes the following parameters, in order:

            ' (1) Route name

            ' (2) URL with parameters

            ' (3) Parameter defaults

            routes.MapRoute( _

                "Default", _

                "{controller}/{action}/{id}", _

                New With {.controller = "Home", .action = "Index", .id = ""} _

            ) 

            routes.MapRoute( _

                "Root", _

                "", _

                New With {.controller = "Home", .action = "Index", .id = ""} _

            ) 

        End Sub 

        Sub Application_Start()

            RegisterRoutes(RouteTable.Routes)

        End Sub

    End Class

После включения карты сценария подстановочных знаков для IIS 7.0 или IIS 6.0 можно сделать запросы, которые работают с таблицей маршрутов по умолчанию, которые выглядят следующим образом:After you enable a wildcard script map for either IIS 7.0 or IIS 6.0, you can make requests that work with the default route table that look like this:

/

/Дом/Индекс/Home/Index

/Продукт/Подробности/3/Product/Details/3

/Product/Product

СводкаSummary

Цель этого учебника состояла в том, чтобы объяснить, как вы можете использовать ASP.NET MVC при использовании старой версии IIS (или IIS 7.0 в классическом режиме).The goal of this tutorial was to explain how you can use ASP.NET MVC when using an older version of IIS (or IIS 7.0 in classic mode). Мы обсудили два способа получения ASP.NET маршрутизм для работы со старыми версиями IIS: изменить таблицу маршрутов по умолчанию или создать карту сценария подстановочных знаков.We discussed two methods of getting ASP.NET Routing to work with older versions of IIS: Modify the default route table or create a wildcard script map.

Первый вариант требует изменения URL-адресов, используемых в ASP.NET mVC-приложении.The first option requires you to modify the URLs used in your ASP.NET MVC application. Одним из очень существенных преимуществ этого первого варианта является то, что вам не нужен доступ к веб-серверу для того, чтобы изменить таблицу маршрутов.One very significant advantage of this first option is that you do not need access to a web server in order to modify the route table. Это означает, что вы можете использовать этот первый вариант, даже при хостинге ASP.NET приложения MVC с интернет-хостинга компании.That means that you can use this first option even when hosting your ASP.NET MVC application with an Internet hosting company.

Второй вариант заключается в создании карты сценария подстановочных знаков.The second option is to create a wildcard script map. Преимущество этого второго варианта заключается в том, что вам не нужно изменять URL-адреса.The advantage of this second option is that you do not need to modify your URLs. Недостатком этого второго варианта является то, что он может повлиять на производительность вашего приложения mVC ASP.NET.The disadvantage of this second option is that it can impact the performance of your ASP.NET MVC application.