Программирование в IIS

       

Создание простого проекта ATL Server


Создадим проект ATL Server.

  1. Откройте Visual Studio .NET.
  2. Выберите команду File\New\Project (Файл\Создать\Проект) для открытия диалогового окна New Project (Новый проект) (см. рис. 4.3).


    Рис. 4.3.  Диалоговое окно New Project (Новый проект) с шаблоном проекта ATL Server

  3. Visual Studio .NET предлагает множество шаблонов ATL для веб-решений и решений ATL. В рамках нашего упражнения выберем шаблон ATL Server Project (Проект сервера ATL). Будьте внимательны: не следует выбирать шаблон ATL Project (Проект ATL), так как он не содержит веб-компонентов. Шаблон ATL Project (Проект ATL) обеспечивает среду для разработки классической ATL DLL или исполняемого файла, использующего библиотеки ATL.

    Шаблон ATL Server Web Service (Веб-служба сервера ATL) создает проект веб-службы, аналогичный шаблонам проектов веб-служб языков Visual Basic и C#, за исключением того, что данный проект использует язык C++. Для веб-службы создается связанное расширение ISAPI, установка и управление которым осуществляется отдельно от DLL-библиотеки веб-службы. По аналогии с файлом .asmx веб-служб в C#, являющимся механизмом управления DLL-библиотекой, веб-служба сервера ATL для этой цели использует файлы HTML.

  4. Введите имя проекта, после чего нажмите на кнопку Next (Далее) для запуска мастера проекта сервера ATL (ATL Server Project Wizard); откроется окно с обзором создаваемого проекта.
  5. Окно мастера проекта сервера ATL имеет четыре раздельные области, предназначенные для изменения параметров проекта ATL Server перед генерацией файлов (см. рис. 4.4). Если параметры по умолчанию известны и подходят для использования, то нажмите на кнопку Finish (Готово) для создания файлов проекта.


Рис. 4.4.  Окно Overview (Обзор) мастера проекта сервера ATL

После нажатия на кнопку Finish (Готово) Visual Studio .NET начнет генерирование файлов согласно параметрам по умолчанию мастера проекта сервера ATL. Любой из упомянутых в шаге 3 шаблонов (ATL Server Web Service [Веб-служба сервера ATL] или ATL Server Project [Проект сервера ATL]) сгенерирует в Visual Studio .NET два проекта.
Стартовый проект представляет собой главный проект, имя которого мы ввели в диалоговом окне New Project (Новый проект). Второй генерируемый проект носит то же имя, что и стартовый, но к его имени добавляется окончание ISAPI. Создаваемому проекту ATL Server присвоено имя NewSimpleATLServer (см. рис. 4.3). В Visual Studio .NET имеется Solution Explorer (Обозреватель решения) для просмотра проектов и связанных с ними файлов. В его окне представлено иерархическое дерево проектов и файлов, связанных с открытым в данный момент программным решением. Solution Explorer можно открыть с помощью команды View\Solution Explorer (Вид\Обозреватель решения). В окне Solution Explorer мы видим проекты NewSimpleATLServer и NewSimpleATLServerISAPI. Проект NewSimpleATLServer содержит код, специфичный для приложения. Его результатом является DLL-библиотека веб-приложения и файл ответа сервера (SRF). Продуктом проекта NewSimpleATLServerISAPI является только ISAPI DLL.

В отличие от шаблонов веб-служб для C# и Visual Basic, в локальный экземпляр IIS не добавляется автоматически виртуальный каталог. Visual Studio .NET можно настроить на реализацию файлов, устанавливающих программное решение ATL Server на IIS. При этом будет производиться установка лишь в первый веб-экземпляр, загруженный в IIS. При установке в другой веб-экземпляр (не в первый, являющийся веб-сайтом по умолчанию) следует провести данную операцию вручную. Для настройки Visual Studio на автоматическую установку решения ATL Server в IIS выполните следующие шаги.

  1. В меню Visual Studio .NET выберите Project\Properties (Проект\Свойства) для открытия окна свойств (см. рис. 4.5). Проект сервера ATL состоит из двух проектов (если только он не настроен на использование одной библиотеки DLL). Окно свойств отображает параметры выбранного в данный момент проекта Visual Studio. Изменить проект можно, выделив его в окне Solution Explorer.


    увеличить изображение
    Рис. 4.5.  Окно свойств проекта и окно Solution Explorer (Обозреватель решения)



  2. В окне свойств выделите внизу левой панели окна узел Web Deployment (Веб-реализация). Каждый из узлов в панели слева обозначается значком папки. Выбор любого из них обновит содержимое правой панели и отобразит элементы управления, используемые для настройки конфигурации выделенного узла.
  3. В окне Solution Explorer выберите проект DLL-библиотеки расширения ISAPI. Если имя проекта не было изменено, то к имени обычно присоединяется окончание ISAPI.
  4. Для свойства Relative Path (Относительный путь), отображаемого в области справа, введите значение bin. В результате DLL-библиотека расширения ISAPI будет расположена в подкаталоге bin папки, на которую указывает виртуальный каталог IIS. Вы можете указать другое имя каталога.
  5. Установите параметр Virtual Directory Name (Имя виртуального каталога) равным имени виртуального каталога, в который устанавливаются файлы проекта ATL Server. Если виртуальный каталог не существует, он будет создан. Ниспадающий список позволяет легко выбрать имя проекта.
  6. Параметр Application Mappings (Связи приложения) нужно установить равным .srf;.dll. В созданном виртуальном каталоге будут присутствовать эти связи.
  7. Выберите проект DLL-библиотеки веб-приложения в Solution Explorer (Обозреватель решения) для обновления окна и отображения параметров проекта.
  8. По аналогии с проектом ISAPI выберите узел Web Deployment (Веб-реализация) в левой области окна внизу (если вы еще не сделали это).
  9. Установите такие же значения параметров, как в шагах 4 и 5. Имя виртуального каталога должно совпадать с именем проекта ISAPI. Параметр относительного пути может отличаться от относительного пути проекта ISAPI. Связи приложения устанавливать не нужно.
  10. Нажмите на кнопку OK, чтобы сохранить изменения в конфигурации и закрыть окно.


После установки относительного пути, имени виртуального каталога и связей приложения для проектов в решении ATL Server реализация файлов произойдет при первом же выполнении команды построения.

Нажмите на клавишу F5, и, независимо от того, какое окно выбрано в Visual Studio .NET, начнется построение, реализация и запуск проекта NewSimpleATLServer.


Появится окно, информирующее об истечении срока действия файлов с запросом на разрешение повторной компиляции. После успешной компиляции двоичных файлов обработчика запросов DLL и расширения ISAPI эти файлы будут перемещены вместе с демонстрационным файлом SRF в место расположения в корневом веб-каталоге веб-сайта IIS по умолчанию. Visual Studio .NET попробует присоединить себя к IIS и провести пошаговую отладку кода, в результате чего, скорее всего, появится следующее сообщение об ошибке.



Запомните. Имя проекта StartUp в любом решении Visual Studio .NET указывается в Solution Explorer жирным шрифтом. Если решение содержит несколько проектов, то шаблон проекта, как правило, автоматически устанавливает нужный проект как StartUp. Тем не менее, убедитесь в том, что в качестве стартового (StartUp) установлен нужный проект, так как проект StartUp устанавливается случайным образом. Для присвоения проекту статуса StartUp щелкните правой кнопкой мыши на проекте в окне Solution Explorer и в контекстном меню выберите Set As StartUp Project (Сделать стартовым проектом).

Visual Studio .NET не устанавливается с поддержкой отладки ATL Server. По умолчанию устанавливается компонент Full Remote Debugging (Полная удаленная отладка), обеспечивающий отладку веб-форм и веб-служб Visual Basic и C#. Решениям C++ необходима Native Remote Debugging (Обычная удаленная отладка). С помощью программы установки Visual Studio .NET добавляется необходимая поддержка (см. рис. 4.6). Откройте программу установки и запустите процесс инсталляции. В окне, показанном на рис. 4.6, выберите Native Remote Debugging (Обычная удаленная отладка).


увеличить изображение
Рис. 4.6.  Установка Native Remote Debugging (Обычная удаленная отладка)

После установки обычной удаленной отладки и правильной настройке ее параметров откроется окно браузера с отображением сообщения: "This is a test: Hello World!". На данном этапе может возникнуть ошибка по причине того, что файловые расширения .dll и .srf не связаны с ассоциированной DLL-библиотекой расширения ISAPI в рассматриваемом экземпляре IIS или виртуальном каталоге.В этом случае откройте связи приложения (см. рис. 4.2) и проверьте правильность связи файлов .dll и .srf с нужной библиотекой.

Поскольку сложная конфигурация ATL Server требует запуска программы Hello World, разработчик должен хорошо разбираться в процессах, происходящих внутри IIS и технологии .NET. Использование мощи ATL Server очень выгодно для разработки, но требует серьезных навыков и знаний от программиста.

Совет. Если при работе с IIS и ATL Server по непонятной причине возникают неполадки, попробуйте перезапустить веб-службы. Это помогает, если разработчик или системный инженер установил связь с расширением ISAPI вручную, либо после внесения изменений в конфигурацию экземпляра IIS или виртуального каталога.


Содержание раздела