dev.net.ua

Українська Спільнота Розробникiв
 
Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

Oleg Repin

  • Релиз модуля URL Rewrite

    Командой IIS выпущен релиз (RTW - Release To Web) модуля URL Rewrite для IIS7. Скачать модуль можно перейдя по следующим ссылкам:

    Microsoft URL Rewrite Module for IIS 7.0 RTW (x86)

    Microsoft URL Rewrite Module for IIS 7.0 RTW (x64)

    Если у вас уже установлен модуль URL Rewrite версии “Go Live”, то при переходе на версию “RTW” все правила описанные в файлах applicationHost.config и Web.config будут автоматически подхвачены. При обновлении модуля, возможно, потребуется перегрузить систему.

    Установщик модуля включает в себя обновление для ASP.NET, исправляющее ошибки переписывания URL. Данное обновление применится только в том случае, если на машине, куда устанавливается модуль URL Rewrite, уже установлен  .NET Framework версии 3.5 SP1. Если же .NET Framework нужной версии будет установлен позже модуля URL Rewrite, то для установки обновлений ASP.NET, необходимо будет перезапустить установщик модуля в режиме Repair.

    Список фич  модуля URL Rewrite:

    ·         Rules-based URL rewriting engine

    ·         Regular expression pattern matching

    ·         Wildcard pattern matching

    ·         Global and distributed rewrite rules

    ·         Access to server variables and http headers

    ·         Various rule actions

    ·         Support for IIS kernel mode and user mode output caching

    ·         Rewrite maps

    ·         Failed Request Tracing support

    ·         Extensible Rule templates

    ·         UI for testing of regular expression and wildcard patterns

    ·         UI for managing rewrite rules and rewrite maps

    ·         GUI tool for importing of mod_rewrite rules

    ·         String manipulation functions

                

    При написании использовались материалы с блога Руслана Якушева  (URL Rewrite Module - Release to Web).

    Спасибо за внимание…

    Надіслане Tuesday, November 11, 2008 10:36 PM від Oleg Repin | 0 коментарів
    Помічено як: ,
  • Расширение графического интерфейса URL Rewrite модуля

    Что это за модуль? Какие проблемы позволяет решить? О нем уже писалось раньше,  и чтобы вспомнить, с чем же мы все-таки имеем дело, советую вначале прочитать этот пост.

                    Также хочу отметить, что недавно вышел Go Live релиз URL Rewrite модуля. С информацией по релизу можно ознакомиться тут.

                    Скачать новую версию модуля:

                          Microsoft URL Rewrite Module for IIS 7.0 Go Live (x86)

                          Microsoft URL Rewrite Module for IIS 7.0 Go Live (x64)

                    По умолчанию модуль URL Rewrite имеет 4 шаблона создания правил перезаписи URL:

    ·         Blank rule

    ·         User friendly URL

    ·         Rule with rewrite map

    ·         Request blocking

    Я покажу Вам как просто можно расширить имеющийся набор шаблонов, написав свой собственный.

                    Запускаем студию и создаем новый проект. В качестве типа проекта выбираем Class Library, нажимаем OK.

    Создаем новый проект

                   Удаляем файл Class1.cs, добавленный в проект по умолчанию. Добавляем ссылку на Microsoft.Web.Management.Rewrite.Client.dll. Если у вас на машине установлен URL Rewrite модуль, то эту сборку можно будет найти в GAC, если же нет, то ее можно скачать, перейдя по ссылке. Также необходимо добавить ссылку на Microsoft.Web.Management.dll – эта дллка содержит классы необходимые для создания модуля, ее можно найти в папке \Windows\system32\inetsrv. Так как расширение графического интерфейса будет основано на WinForms, не забываем добавлять ссылку на System.Windows.Forms.dll.

                    Назначаем сборке строгое имя.

    Назначаем строгое имя

                   Выбираем в свойствах проекта пункт Build Events и в командную строку на Post-build event вставляем скрипт, который установит нашу сборку в GAC.

                    "%ProgramFiles%\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe" /if "$(TargetPath)"

    Установка сборки в GAC

                   Создаем ModuleProvider, являющийся главной точкой входа при регистрации модулей. Потом мы пропишем его в Administration.config.

    using System;

    using Microsoft.Web.Management.Server;

     

    namespace MyDemoTemplate

    {

        internal sealed class DemoModuleProvider : ModuleProvider

        {

            public override Type ServiceType { get { return null; } }

            public override ModuleDefinition GetModuleDefinition(IManagementContext context)

            {

                return new ModuleDefinition(Name,

                                        typeof(DemoModule).AssemblyQualifiedName);

            }

            public override bool SupportsScope(ManagementScope scope) { return true; }

        }

    }

    Добавляем в проект файл DemoModule.cs и помещаем в него код, регистрирующий расширение графического интерфейса в модуле URL Rewrite.

    using System;

    using Microsoft.Web.Management.Client;

    using Microsoft.Web.Management.Server;

    using Microsoft.Web.Management.Iis.Rewrite.RewriteTemplates;

     

    namespace MyDemoTemplate

    {

        internal sealed class DemoModule : Module

        {

            protected override void Initialize(IServiceProvider serviceProvider, ModuleInfo moduleInfo)

            {

                base.Initialize(serviceProvider, moduleInfo);

     

                Connection connection = (Connection)GetService(typeof(Connection));

     

                connection.Initialized += delegate

                {

                    Microsoft.Web.Management.Client.Module rewriteModule =

                                               connection.Modules["Rewrite"] as Module;

                    if (rewriteModule == null)

                    {

                        // URL Rewrite модуль не установлен правильно

                        return;

                    }

     

                    DemoRewriteTemplateFeature demoFeature =

                                        new DemoRewriteTemplateFeature(rewriteModule);

     

                    IExtensibilityManager extensibilityManager = (IExtensibilityManager)

                demoFeature.ServiceProvider.GetService(typeof(IExtensibilityManager));

     

                    extensibilityManager.RegisterExtension(typeof(RewriteTemplateFeature), demoFeature);

                };

            }

        }

    }

                    Создаем новый шаблон для модуля URL Rewrite. Для этого необходимо наследоваться от класса RewriteTemplateFeature. В этом примере при выборе нашего шаблона будет отображаться пустая форма с текстом «My Demo Template» (метод Run).

    using System.Windows.Forms;

    using Microsoft.Web.Management.Iis.Rewrite.RewriteTemplates;

    using Microsoft.Web.Management.Client;

     

    namespace MyDemoTemplate

    {

        internal sealed class DemoRewriteTemplateFeature : RewriteTemplateFeature

        {

            private const string FeatureTitle = "My Demo Template";

            private const string FeatureDescription = "Расширение графического интерфейса URL Rewrite модуля.";

     

            public DemoRewriteTemplateFeature(Module module)

                : base(module, FeatureTitle, FeatureDescription, null, null)

            {

            }

     

            public override void Run()

            {

                Form form = new Form();

                form.Text = "My Demo Template";

                form.StartPosition = FormStartPosition.CenterParent;

                form.ShowDialog();

            }

        }

    }            

                    И в заключение, чтобы посмотреть результат, необходимо, чтобы наша сборка была в GAC, и  наш провайдер был прописан в файле Administration.config.

                   <add name="MyDemoTemplate" type="MyDemoTemplate.DemoModuleProvider, MyDemoTemplate, Version=1.0.0.0, Culture=neutral, PublicKeyToken=622da6f0be08ecf7" />

                   Теперь, мы увидим наш шаблон, если зайдем в модуль URL Rewrite и нажмем добавить правило.

    Создаем новое правило

                   А при выборе шаблона появится наша форма.

    Наша форма

                   При написании использовались материалы с блога Daniel Vasquez Lopez's, а так же с How to Create a Simple IIS Manager Module.

                   Спасибо за внимание…

  • Visual Studio Team System 2010

       На Channel 9 повилось видео, рассказывающее о том, что нас ждет в следующей версии студии, официально названной Visual Studio Team System 2010. Эта неделя на Channel 9 будет посвящена Visual Studio Team System 2010 (Visual Studio Team System 2010 Week on Channel 9).

  • Управление шириной канала на IIS7

                    Команда разработчиков IIS постоянно трудится над расширением возможностей и повышением производительности веб-сервера, но некоторые из дополнений требуют особенного внимания. Сегодня я расскажу о модуле «IIS7 Media Pack – Bit Rate Throttling Module», созданного для управления шириной канала на IIS7.

                    Скачать его можно с сайта http://www.iis.net/ по следующим ссылкам:

                    Bit Rate Throttling for IIS 7.0 (x64)

                    Bit Rate Throttling for IIS 7.0 (x86)

                    Установка модуля простая и не занимает много времени, ознакомиться с ней можно тут.

        «IIS7 Media Pack – Bit Rate Throuttling Module» – предоставляет возможность ограничивать ширину канала скачивания файлов, имеет интуитивно понятный интерфейс настройки основных  параметров: Fast Start, Throttle rate… (более подробно о них расскажу чуть ниже в примере). Особое внимание следует уделить автоматической поддержке медиа контента. Вот список типов медиа файлов, которые поддерживаются по умолчанию:

    ·         .asf

    ·         .avi

    ·         .flv

    ·         .m4v

    ·         .mov

    ·         .mp3

    ·         .mp4

    ·         .rm

    ·         .rmvb

    ·         .wma

    ·         .wmv

       Конфигурирование модуля может выполняться на следующих четырех уровнях:

    ·         Сервера

    ·         Сайта

    ·         Виртуальной директории

    ·         Файла

       Уровни, по сути, не предоставляют никаких дополнительных настроек, а лишь указывают на область видимости ограничений (например: глобальные ограничения для всего сервера, или локальные настройки для определенной виртуальной директории).

       И в завершение, приведу пример по использованию модуля, с описанием настроек, которые будут встречаться по ходу изложения:

       Создаем виртуальную директорию Media, затем в группе «Media Services» модулей IIS выбираю модуль «Bit Rate Throttling» и нажимаю Open Feature.

                   

                    Внутри представлены 11 медиа типов фалов поддерживаемых модулем по умолчанию.

                   

                    Изменим настройки одного из этих типов. Выбираем тип файла .wmv и нажимаем редактировать (Edit).

                    

                    В появившемся диалоговом окне мы можем изменить тип регулирования (может быть Media или Data). По умолчанию для .wmv стоит Media. Изменим значение в поле Fast Start с 20 на 100. Это поле устанавливает количество первых секунд, в течение которых медиа файл будет скачиваться так быстро, насколько будет позволять ширина канала. Поле Throttle rate, задает скорость скачивания оставшейся части файла. Для медиа типов, указывается в процентах от закодированной скорости передачи содержимого файла в битах для воспроизведения. К примеру, если файл сжат с bit rate равным 300 kbps, а поле Throttle rate установлено в 110, то оставшаяся часть файла будет скачиваться со скоростью 330 kbps.