All Microsoft Supported Downloads
IIS Compression
Published on 05/23/2018 by Microsoft
Windows
IIS Compression is a collection of compression scheme providers that add support for Brotli compression and provide a better implementation of Gzip and Deflate compression than those that ship with IIS.
Web Platform Installer
Published on 02/06/2018 by Microsoft
Windows
The Microsoft Web Platform Installer (WebPI) was retired on December 31, 2022. For more information please see this blog post: https://blogs.iis.net/iisteam/web-platform-installer-end-of-support-feed
IIS CORS Module
Published on 11/10/2017 by Microsoft
Windows
The Microsoft IIS CORS Module is an extension that enables web sites to support the CORS (Cross-Origin Resource Sharing) protocol.
All Community Contributed Downloads
All Microsoft Supported Downloads
IIS Compression
Published on 05/23/2018 by Microsoft
Windows
IIS Compression is a collection of compression scheme providers that add support for Brotli compression and provide a better implementation of Gzip and Deflate compression than those that ship with IIS.
Web Platform Installer
Published on 02/06/2018 by Microsoft
Windows
The Microsoft Web Platform Installer (WebPI) was retired on December 31, 2022. For more information please see this blog post: https://blogs.iis.net/iisteam/web-platform-installer-end-of-support-feed
IIS CORS Module
Published on 11/10/2017 by Microsoft
Windows
The Microsoft IIS CORS Module is an extension that enables web sites to support the CORS (Cross-Origin Resource Sharing) protocol.
All Community Contributed Downloads
Обновлено
2018-10-26 22:08:24
Совместимость
Windows Vista, Windows 2008, Windows 7
Язык
Русский,
Английский,
Немецкий,
Французский
Описание
Internet Information Services (IIS) — это программа понадобится, если потребуются сервера нескольких служб Интернета, попробуйте скачать Internet Information Services (IIS). Среди компонентов — набор сервисов, позволяющий размещать сайты. Используется приложение Internet Information Services (IIS) для Windows. Программа работает на русском, английском, немецком, французском языках.
Загрузить Internet Information Services (IIS) можно бесплатно.
Среди поддерживаемых сервером протоколов — HTTP, FTP, POP3 и SMTP. Под управлением софта функционируют службы:
- поддержки приложений;
- публикаций WEB;
- активации Windows.
Возможности, предоставляемые программой и некоторые особенности работы.
- Чтобы поддерживать сайты, сохраняются документы журналов, а также сообщения об ошибках. Этот инструмент устанавливается в папку Administrative Tools. При инсталляции создается путь на диске C, каталог inetpub.
- Чтобы программа работала корректно, необходимо установить Net Framework 4.
- Веб-сервер с расположенными сайтами функционирует как файловый, обладающий расшаренными сетевыми ресурсами. Открывается папка для доступа, присваивается общее имя, прописываются разрешения.
- Чтобы позволить доступ к приложению, расположенному на удаленном сервере и открыть службы сервиса, потребуется разблокировать порты в брандмауэре Windows.
- Указывается учетная информация пользователя и пароль в строке подключения для подключения к службам Analysis Services для обеспечения безопасности.
Freesoft.ru позволит скачать бесплатно Internet Information Services (IIS) для ПК.
Версии
Join the Chocolatey Team on our regular monthly stream where we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.
Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You’ll have a chance to have your questions answered in a live Ask Me Anything format.
Livestream from
Thursday, 06 October 2022
We recently released our largest update to Chocolatey Central Management so far. Join Gary and Steph to find out more about Chocolatey Central Management and the new features and fixes we’ve added to this release.
Watch On-Demand
Webinar Replay from
Wednesday, 30 March 2022
At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!
Watch On-Demand
Livestream from
Thursday, 9 June 2022
Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.
Watch On-Demand
Livestream from
Thursday, 04 August 2022
Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We’ll talk about some cool new features, long term asks from Customers and Community and how you can get involved!
Watch On-Demand
Livestreams from
October 2022
For Hacktoberfest, Chocolatey ran a livestream every Tuesday! Re-watch Cory, James, Gary, and Rain as they share knowledge on how to contribute to open-source projects such as Chocolatey CLI.
Watch On-Demand
Livestream from
Thursday, 03 November 2022
Join Paul and Gary for this months Chocolatey product livestream where we look at the latest release of Chocolatey 1.2.0, Chocolatey Licensed Extension 5.0.0 and shine a spotlight on the new hook scripts functionality. This opens up so many possibilities for Chocolatey CLI users!
Watch On-Demand
Livestream from
Tuesday, 29 November 2022
Join Josh as he adds the ability to manage Chocolatey GUI config and features with the Chocolatey Ansible Collection.
Watch On-Demand
Webinar from
Tuesday, 13 December 2022
Join Gary, Paul, and Maurice as they introduce and demonstrate how to use Chocolatey! Questions will be answered live in an Ask Me Anything format.
Watch On-Demand
Microsoft IIS Administration 6.0.0
Microsoft IIS Administration is a REST API that allows consumers to configure and monitor their IIS web servers. With the API installed on your IIS machine, you can configure your IIS instance with any HTTP client. See https://docs.microsoft.com/en-us/IIS-Administration for more information.
Dependencies
- .NET Core Runtime 6.0-latest
- ASP.NET Core Runtime 6.0-lastest
https://dotnet.microsoft.com/en-us/download/dotnet/6.0
Change Log
- Refreshed dependence on .Net core to version 6.0.0,
- Updated dependencies to current versions,
- Removed dependence on MicrosoftAspNetCoreMvcWebApiCompatShimVersion,
- Minor bug fixes,
2.3.0
Microsoft IIS Administration 2.3.0
Microsoft IIS Administration is a REST API that allows consumers to configure and monitor their IIS web servers. With the API installed on your IIS machine, you can configure your IIS instance with any HTTP client including our new web management tool https://manage.iis.net.
Visit https://manage.iis.net/get to get started.
Dependencies
- .NET Core 2.1.* Runtime
- ASP.NET Core 2.1.* Shared Framework
https://dotnet.microsoft.com/download/dotnet-core/2.1
Change Log
Enhancements
- Remove dependecies for .NET core 1.0.X in favor of .NET Core 2.1 LTS
- Error reporting on Windows Event Log
Bug Fixes
- Installer now work on system with Powershell < 2.0.0
2.2.1
Microsoft IIS Administration 2.2.1
Microsoft IIS Administration is a REST API that allows consumers to configure and monitor their IIS web servers. With the API installed on your IIS machine, you can configure your IIS instance with any HTTP client including our new web management tool https://manage.iis.net.
Visit https://manage.iis.net/get to get started.
Requirements
- Microsoft .NET Core
Change Log
Enhancements
- Address VS2017 15.6 behavior change breaking f5 experience #183
- Added dashed outline to input-focused elements #207
- Updated services for authentication. #208
- Use
IIS Administration API Owners
group to maintain ownership; allow opting outhttps://manage.iis.net
as trusted cors #229
Bug Fixes
- Fixed for checkbox with inputfocus #213
- Fixed input focus issue #222
2.2.0
Microsoft IIS Administration 2.2.0
Microsoft IIS Administration is a REST API that allows consumers to configure and monitor their IIS web servers. With the API installed on your IIS machine, you can configure your IIS instance with any HTTP client including our new web management tool https://manage.iis.net.
Visit https://manage.iis.net/get to get started.
Requirements
- Microsoft .NET Core
Change Log
- Web server health and performance monitoring endpoints have been added #140
- Web Server (/api/webserver/monitoring)
- Web Sites (/api/webserver/websites/monitoring/{id})
- App Pools (/api/webserver/application-pools/monitoring/{id})
- An endpoint was added to configure the API’s known file system locations (/api/files/locations) #143
- The IIS Administration API installer has been updated to pull the latest .NET Core LTS version (1.0.7) if it is not installed.
Enhancements
- Added version property to URL Rewrite #148
Bug Fixes
- Fixed an incorrect time zone on Self Signed Certificate #152
- Fixed invocation that is not present on all versions of PowerShell #141
- Fixed an issue where ssl bindings with an IP address other than * caused a 500 error on IIS 7.5 #153
2.1.0
Microsoft IIS Administration 2.1.0
Microsoft IIS Administration is a REST API that allows consumers to configure and monitor their IIS web servers. With the API installed on your IIS machine, you can configure your IIS instance with any HTTP client including our new web management tool https://manage.iis.net.
Visit https://manage.iis.net/get to get started.
Requirements
- Microsoft .NET Core
Change Log
- URL Rewrite API endpoints have been added.
- Inbound Rules
- Outbound Rules
- Custom Tag Sets
- Preconditions
- Rewrite Maps
- Allowed Server Variables
- Rewrite Providers
- When upgrading the IIS Administration API, the installer will now create an updated SSL certificate if the original certificate has less than 3 months of validity left. Any expired IIS Administration certificates will be removed when the upgrade completes. #119
Breaking Changes
- Web sites no longer expose the key property in their reference representation #113
Bug Fixes
- Web sites’ key property can now be set when creating a web site #108
- ASPNETCORE_ENVIRONMENT no longer effects the state of the application #124
2.0.0
Microsoft IIS Administration 2.0.0
Microsoft IIS Administration is a REST API that allows consumers to configure and monitor their IIS web servers. With the API installed on your IIS machine, you can configure your IIS instance with any HTTP client including our new web management tool https://manage.iis.net.
Visit https://manage.iis.net/get to get started.
Requirements
- Microsoft .NET Core
Change Log
- IIS Hostable Web Core, Windows Authentication, Url Authorization, and the ASP.NET Core Module have been removed as requirements for installation
- The web.config and applicationHost.config files have been removed from the application
- Access control is now handled through the appsettings.json file
C:Program FilesIIS Administration2.0.0Microsoft.IIS.Administrationconfigappsettings.json
- There is no more local IIS Administrators group created during installation of the IIS Administration API. The installing user is granted access to the API via the appsettings.json file, and more users can be granted access by adding them to the appsettings.json file, or by creating a Windows group, adding the users to the group, and then adding the group to the appsettings.json file if desired.
Enhancements
- Added ability to set the key property of web sites (id in applicationHost.config)
- All configuration settings can now be provided as command line arguments
Bug Fixes
- Copy directory no longer indicates that the directory has been completely copied before all files are finished copying acefb3d
New Access Control Configuration
The web.config file has been removed from the application and the logic for granting/preventing access to the API has been moved to the appsettings.json file. There is now a security section that can be used to control Windows Authentication and other requirements for different areas of the API.
"security": {
"require_windows_authentication": true,
"users": {
"administrators": [
"DOMAIN\UserName"
],
"owners": [
"DOMAIN\UserName"
]
},
"access_policy": {
"api": {
"users": "administrators",
"access_key": true
},
"api_keys": {
"users": "administrators",
"access_key": false
},
"system": {
"users": "owners",
"access_key": true
}
}
}
require_windows_authentication: A boolean value that specifies whether valid Windows Authentication is required for all requests to the API. If true, any request that is not Windows Authenticated will be rejected. If false, Windows Authentication can be turned off based on the access_policy settings.
users: A mapping between Windows Identities and roles within the API. Any user type can be created, but by default the appsettings.json file contains administrators and owners. These user types are used in the access_policy section to control who has access to different sections of the API.
access_policy: The access policy specifies requirements to be able to access certain areas of the API. The users requirement specifies which users have access to the section, where users are from the users map mentioned above. To allow all users, Everyone can be specified as the value for this requirement. the access_key requirement specifies whether an access key is required to access the section of the API.
access_policy:api: This access policy is for API resources such as web sites, application pools, and files. The default requirements to access these resources are still Windows Authentication and an access key.
access_policy:api_keys: This access policy is for manipulating API keys. The default requirements to manipulate access keys is still Windows Authentication with no access key requirement.
access_policy:system: This access policy is for high privilege actions that are offered by the API, such as changing the identify of an application pool to LocalSystem.
1.1.1
Microsoft IIS Administration 1.1.1
Microsoft IIS Administration is a REST API that allows consumers to configure and monitor their IIS web servers. With the API installed on your IIS machine, you can configure your IIS instance with any HTTP client including our new web management tool https://manage.iis.net.
Visit https://manage.iis.net/get to get started.
Requirements
- Microsoft IIS Enabled
- Microsoft .NET Core
Note: Installation time varies based on whether required IIS features are already enabled.
Change Log
Enhancements
- Added ability to set max number of log files and audit files
Bug Fixes
- Fixed 500 that could occur when moving directories using /api/files/move #83
- Fixed 403 error when listing webserver files with a virtual application or virtual directory that does not have an allowed physical path #81
- Fixed hang when enabling/disabling IIS features #80
- Freb.xsl (/downloads/freb.xsl) is now available regardless of module order in modules.json
1.1.0
Microsoft IIS Administration 1.1.0
Microsoft IIS Administration is a REST API that allows consumers to configure and monitor their IIS web servers. With the API installed on your IIS machine, you can configure your IIS instance with any HTTP client including our new web management tool https://manage.iis.net.
Visit https://manage.iis.net/get to get started.
Requirements
- Microsoft IIS Enabled
- Microsoft .NET Core
Note: Installation time varies based on whether required IIS features are already enabled.
Change Log
Enhancements
- Central Certificate Store support added /api/webserver/centralized-certificates
- Certificate stores API added /api/certificates/stores
- Certificates API now supports stores other than My
- Certificates API now supports Range requests
- Added ability to install and uninstall optional IIS features
- Content Security Policy added to the API Explorer
Bug Fixes
- Log file and audit file messages no longer have duplicated time stamps.
- The Microsoft IIS Administration Service now properly registers a dependency on HTTP
- The Microsoft IIS Administration Service no longer depends on the HTTP Compression optional feature.
Breaking Changes
- The request monitoring API /api/webserver/http-request-monitor no longer responds with a list of executing requests. This endpoint has been reworked to support install/uninstall of the request monitoring IIS optional feature. The list of executing requests has been moved to /api/webserver/http-request-monitor/requests.
Preview 1.0.39
Microsoft IIS Administration Preview 1.0.39
Microsoft IIS Administration is a REST API that allows consumers to configure and monitor their IIS web servers. With the API installed on your IIS machine, you can configure your IIS instance with any HTTP client including our new web management tool https://manage.iis.net.
Visit https://manage.iis.net/get to get started.
Requirements
- Microsoft IIS Enabled
- Microsoft .NET Core
Note: Installation time varies based on whether required IIS features are already enabled.
Change Log
Enhancements
- HTTP Request Trace API added /api/webserver/http-request-tracing/traces
- Added ability to retrieve the IIS freb.xsl file for viewing request trace files via /downloads/freb.xsl
- Added web site’s key property to the web site’s reference representation.
Bug Fixes
- Viewing the root directory of a file system no longer causes an error #63
- Directories will no longer have different IDs #67
- Aliases now correctly appear on file resources that have an alias configured in the appsettings #65
Preview 1.0.38
Microsoft IIS Administration Preview 1.0.38
Microsoft IIS Administration is a REST API that allows consumers to configure and monitor their IIS web servers. With the API installed on your IIS machine, you can configure your IIS instance with any HTTP client including our new web management tool https://manage.iis.net.
Visit https://manage.iis.net/get to get started.
A blog post was written about this release. You can find it here
Requirements
- Microsoft IIS Enabled
- Microsoft .NET Core
Note: Installation time varies based on whether required IIS features are already enabled.
Change Log
Enhancement
- Web site bindings now support require SNI. #42
- Web sites now have a key property that correlates to the site id in the applicationHost.config file. #39
- Files API added. #28
- Application pool renaming no longer leaves orphaned applications. #5
Breaking Changes
- Creating sites, applications and virtual directories now requires read access to the target directory. Access rights are specified in the appsettings.json file.
Привет. Давайте установим ISS. А для начала узнаем что такое IIS?
IIS (Internet Information Services, до версии 5.1 — Internet Information Server) — проприетарный набор серверов для нескольких служб Интернета от компании Майкрософт. IIS распространяется с операционными системами семейства Windows NT.
Основным компонентом IIS является веб-сервер, который позволяет размещать в Интернете сайты. IIS поддерживает протоколы HTTP, HTTPS, FTP, POP3, SMTP, NNTP.
Подробнее 20
Отлично. Теперь мы знаем что мы будем ставить . Приступим.
Установка
Первым делом идем в главное меню «Пуск» (Start) далее
Панель управления -> Программы -> Включение или отключение компонентов Windows.
Находим в списке «Службы IIS» и выбираем нужные компоненты
Где-то рекомендовалось следующее:
- Безопасность. Все компоненты кроме «Проверка подлинности с сопоставлением сертификата …».
- Компоненты разработки приложений. Для PHP нужна компонента CGI.
- Общие функции HTTP. Отмечаем все пункты.
- Проверка работоспособности и диагностика. Выбираем «Ведение журнала HTTP» и «Монитор запросов».
- Функции повышения быстродействия. Отмечаем все пункты.
- Средства управления веб-сайтом. Отмечаем только «Консоль управления IIS».
Лично я немного отступил от этого описания и добавил FTP, так как мне для моих нужд потребуется тестировать работу с FTP.
После того как были выбраны нужные пункты, нажимаем «Ок» и остается подождать когда установятся требующиеся нам компоненты. после чего можно перезагрузить машину. это ей не помешает для старта всех требующихся сервисов.
все. Можно сказать что наш ISS Сервер установлен. Перейдем к его начальному конфигурированию .
Конфигурирование
Идем в управление компьютером (правой кнопкой мыши по значку «Компьютер» -> Управление), далее «Службы и приложения» -> «Диспетчер служб IIS» или счастливые обладатели Windows 7 могут пойти по другому «Пуск» и в поле «Найти программы и файлы» ввести «IIS» и в списке отобразится заветная «Диспетчер служб IIS»
Идем в сайты. Сайт по умолчанию я удалил сразу, решив что он мне не нужен и для наглядности я создам новый .
Правой кнопкой мыши по «сайтам» -> «Добавить web сайт»
и создаем наш первый сайт
Обратите внимание «localhost» был выбран не случайно. Так как именно эта директива является «по умолчанию» имеет локальный адрес 127.0.0.1 и имя прописанное в файле hosts lcalhost. подробнее советую почитать на википедии localhost 8 и hosts 3
В папке указанной как «физический путь», находятся файлы нашего сайта, которые были положены IIS в качестве демонстрационного примера 2 файла это iisstart.htm и welcome.png
После чего нажимаем «Ок».
Уже можно запустить браузер и перейти по адресу http://localhost/ и мы увидим приветствие ISS.
ISS Установлен и настроен!
Если Вы хотите чтобы ваш сайт откликался локально на другое имя, то вместо «localhost» нужно указать свое имя и завести его на DNS сервере или в файле hosts.
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
Сегодня решил немного побаловаться с DataSnap XE2, разработать небольшую ISAPI-dll и посмотреть как всё это будет работать под управлением моей Windows 7 x64. Надо сказать, что простейший примерчик такого приложения собрался и заработал почти без проблем. Как Вы наверняка знаете, наиболее часто для выполнения операций на сервере используется интерфейс CGI, CGI-скрипты и т.д. Однако компания Microsoft в свое время предложила свой вариант исполнения серверных программ, который называется ISAPI (Internet Server API). В первую очередь ISAPI предназначался для подключения к web-серверу Microsoft под названием Internet Information Server (IIS). Программы ISAPI представляют собой давно известные нам динамически загружаемые библиотеки DLL, которые вызываются Web-сервером, загружаются в память и становятся как бы частью этого Web-сервера, расширяя или изменяя его функциональность. Сейчас для сервера Apache (самого популярного web-сервера) имеется модуль mod_isapi.dll, который позволяет запускать ISAPI-dll. Вообще, если рассуждать о популярности того или иного веб-сервера, то лучше всего начать с посещения вот этого сайта, но мы сегодня не об этом и даже не о том кто круче/быстрее/удобнее IIS или Apache, а о том как написать программку, которая заработает под управлением IIS 7.5 в Windows 7 x64.
Начнем с того, что настроим наш web-сервер IIS.
проходит следующим образом: 1. Заходим в «Панель управления -> Программы и компоненты» и выбираем «Включение или отключение компонентов Windows»: 2. В открывшемся окне ищем «Службы IIS» и выбираем следующие необходимые компоненты для установки. Т.к. мне сегодня пришлось достаточно много экспериментировать с IIS, то мой список установленных компонентов оказался таким: 3. Жмем «Ok» и терпеливо ожидаем окончания установки. На этом шаге установка IIS завершена и можно приступать к настройке web-сервера, созданию и тестированию сайта. И здесь может проявиться то самое «почти» без которого я бы мог в начале поста сказать, что «примерчик такого приложения собрался и заработал почти без проблем«. Итак: 4. Заходим в «Панель управления -> Администрирование» и находим там «Диспетчер служб IIS«: Вот здесь и настраивается будущий сайт. По умолчанию, после установки компонентов у Вас на диске C:\ появится дирректория c:inetpub в которой будут храниться служебные файлы сервера и файлы сайта(-ов), с которыми вы будите работать. При установке в диспетчере уже будет находится один дефолтный сайт, но мы, для порядка создадим свой. 5. В дереве «Подключения» выбираем узел «Сайты», вызываем контекстное меню и выбираем «Добавить веб-сайт…»: 6. В открывшемся окне задаем настройки нашего сайта. На рисунке ниже показаны, которые практически не отличаются от дефолтных (различается только название сайта и его физическое расположение): Теперь в дереве подключений у Вас появился новый сайт «DataSnapSite» который по-идее должен бы запускаться с URL ‘http://localhost’, но, как оказалось, происходит это не всегда: Покопался по Сети в поисках ответа. Оказалось, что у кого-то сайт с такими настройками, как показано выше, работал без проблем, у других — через раз возникали проблемы с ASP.NET у кого-то, как и у меня, сайт вообще не открывался. Может причина в версии IIS, а может и нет, но для себя я нашел два возможных варианта решения этой проблемы: вариант 1: смотрим приложения, которые «слушают» 80-й порт — это могут быть Skype, TeamViewer и другие программки, работающие с сетью. Отключаем эти программы, перезагружаем IIS и снова пробуем зайти на сайт в браузере. вариант 2: если первый вариант не помог, то идем в IIS диспетчере в «Подключения», выбираем наш сайт и меняем ему привязку, на, например, вот такую: можете также, если необходимо, сменить и порт. После этого сайт должен заработать — можете бросить в корневую директорию сайта файлик index.html и посмотреть на него в браузере: Сайт заработал и на текущем этапе работы нам этого будет достаточно. Мы ещё вернемся к работе с диспетчером IIS и посмотрим, какие ещё возможные проблемы могут возникнуть, а пока идем в Delphi и создаем наше первое приложение ISAPI с DataSnap XE2.
Создаем заготовку ISAPI DLL
Запускаем Delphi и выбираем «File -> New -> Other -> DataSnap Server -> DataSnap WebBroker Application«: В первом шаге помощника выбираем третий пункт — «ISAPI dynamic link library» и жмем Next: На втором и третьем шаге можно оставить все установки по умолчанию. В итоге в менеджере проектов появится новый проект с таким содержанием: ServerMethodsUnit1, как уже понятно из названия будет содержать серверные методы, а модуль WebModule1 содержать компоненты, которые с помощью которых наша ISAPI-dll станет сервером DataSnap и модуль будет выглядеть вот так: Можно сказать, что уже то, что было сделано с использованием помощника — это уже готовая к использованию DLL. Но, пока не будем сильно спешить, а посмотрим на содержимое нашей DLL. Открываем исходный код библиотеки и видим, что наша DLL экспортирует три метода:
exports GetExtensionVersion, HttpExtensionProc, TerminateExtension;
Назначение и описание этих модулей следующее: GetExtensionVersion — предназначена для того, чтобы ISAPI-модуль мог сообщить серверу версию спецификации ISAPI-интерфейса и строку описания ISAPI-модуля. Метод имеет следующее описание:
function GetExtensionVersion(var Ver: THSE_VERSION_INFO): BOOL;
где THSE_VERSION_INFO — это структура:
THSE_VERSION_INFO = HSE_VERSION_INFO; HSE_VERSION_INFO = record dwExtensionVersion: DWORD;//версия спецификации //описание модуля lpszExtensionDesc: array [0..HSE_MAX_EXT_DLL_NAME_LEN-1] of AnsiChar; end;
Функция HttpExtensionProc— обеспечивает основную функциональность ISAPI-модуля и используется для обмена данными между модулем и сервером.
function HttpExtensionProc(var ECB: TEXTENSION_CONTROL_BLOCK): DWORD;
Параметр ECB указывает на управляющую структуру. которая выглядит вот так:
TEXTENSION_CONTROL_BLOCK = record cbSize: DWORD; // size of this struct. dwVersion: DWORD; // version info of this spec ConnID: HCONN; // Context number not to be modified! dwHttpStatusCode: DWORD;// HTTP Status code // null terminated log info specific to this Extension DLL lpszLogData: array [0..HSE_LOG_BUFFER_LEN-1] of AnsiChar; lpszMethod: PAnsiChar; // REQUEST_METHOD lpszQueryString: PAnsiChar; // QUERY_STRING lpszPathInfo: PAnsiChar; // PATH_INFO lpszPathTranslated: PAnsiChar;// PATH_TRANSLATED cbTotalBytes: DWORD; // Total bytes indicated from client cbAvailable: DWORD; // Available number of bytes lpbData: Pointer; // pointer to cbAvailable bytes lpszContentType: PAnsiChar; // Content type of client data GetServerVariable: TGetServerVariableProc; WriteClient: TWriteClientProc; ReadClient: TReadClientProc; ServerSupportFunction: TServerSupportFunctionProc; end;
Метод TerminateExtension— этот метод отвечает за корректную выгрузку ISAPI-модуля из памяти и освобождение ресурсов.
function TerminateExtension(dwFlags: DWORD): BOOL;
Вот эти три метода и отличают обычную DLL от ISAPI-модуля. Теперь посмотрим, что содержит модуль ServerMethodsUnit1. Как сказано ранее, здесь содержатся серверные методы. Сейчас класс, содержащий эти методы выглядит вот так:
type {$METHODINFO ON} TServerMethods1 = class(TComponent) private { Private declarations } public { Public declarations } function EchoString(Value: string): string; function ReverseString(Value: string): string; end; {$METHODINFO OFF}
Первый метод просто возвращает обратно переданную в параметрах строку, а второй — ту же строку, но перевернутую. Собственно, суть одного из способов оформления серверных методов можно уловить довольно быстро, посмотрев на TServerMethods1. Посмотрим на модуль WebModule1, который был показан на рисунке выше. Этот модуль содержит три компонента: DSServer1 — собственно, сам сервер DataSnap. Необходим для управления серверными методами и передачи данных. DSServerClass1— этот компонент определяет класс с серверными методами, которые могут вызываться клиентским приложением. Должен указывать на DSServer, что и сделано в нашем случае. Для определения класса серверными методами используется событие компонента OnGetClass, обработчик которого в нашем приложении выглядит сейчас вот так:
procedure TWebModule1.DSServerClass1GetClass( DSServerClass: TDSServerClass; var PersistentClass: TPersistentClass); begin PersistentClass := ServerMethodsUnit1.TServerMethods1; end;
Что из себя представляет TServerMethods1 мы уже видели. DSHTTPWebDispatcher1 — в нашем случае этот компонент обеспечивает выполнение и обработку HTTP-запросов DataSnap сервером. Этот компонент, как и DSServerClass1 должен указывать на DSServer1. С обзором содержимого проекта закончили. Теперь попробуем собрать нашу DLL и запустить её на нашем web-сервере. Сохраняем наш проект, например, в директорию: c:DataSnap Server Так как сегодня мы тренируемся в разработке ISAPI-модулей, то, чтобы впоследствии не «бегать» по длинным путям к готовой библиотеке, в опциях проекта укажем точно такой же путь и к собранному проекту: Теперь собираем по Ctrl+F9 нашу библиотеку, убеждаемся, что она действительно лежит там где надо и снова возвращаемся в Диспетчер IIS.
Запускаем ISAPI-модуль
Сейчас наша DLL лежит в директории c:DataSnap Server и чтобы мы могли её использовать на нашем сайте необходимо выполнить следующие действия в Диспетчере служб IIS: 1. Выбираем в дереве «Подключения» наш сайт, вызываем контекстное меню и выбираем в нем пункт «Добавить виртуальный каталог»: Задаем настройки виртуальной директории как показано на рисунке: Теперь выбираем виртуальную директорию в «Подключениях» и заходим в настройку «Подключаемых модулей»: Теперь выбираем «Просмотр каталога» и убеждаемся, что просмотр включен: На текущий момент обработчик файлов *.dll (ISAPI-dll) должен быть отключен. Чтобы его включить выбираем запись в списке, жмем «Изменение разрешения функции» и ставим флажок «Выполнение»: Следующий шаг — разрешить запуск неуказанных модулей ISAPI. Для этого в дереве подключений выбираем самый верхний узел и ищем опцию «Ограничения ISAPI и CGI«: Здесь выбираем опцию «Изменить параметры..» и в открывшемся окне ставим флажок «Разрешить выполнение неуказанных модулей ISAPI»: И последний шаг настройки на котором снова вылезло то самое «почти без проблем». Для того, чтобы мы могли запускать под Windows x64 и 32-битные ISAPI-модули необходимо: Выбрать в подключениях «Пулы приложений», найти в списке пул, относящийся к нашему сайту и открыть окно с дополнительными опциям: Вот теперь, если Вы сделали все, что было сказано выше, наш ISAPI-модуль должен заработать. Проверим. Выбираем в подключениях виртуальную директорию «test» и в правом столбце («Действия») жмем опцию «Обзор». В браузере должна открыться страничка с перечнем всех файлов и директорий каталога. У меня она выглядит вот так: Выбираем в списке нашу DLL (у меня это Project15.dll) и видим следующую надпись в браузере: Это ни что иное как результат работы одного из методов в нашем проекте:
procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); begin Response.Content := 'DataSnap Server'; end;
DLL заработала, но это ещё не все. Как быть с нашими серверными методами? Для того, чтобы мы могли воспользоваться серверными методами подключимся к DataSnap-серверу и напишем небольшое клиентское приложение, которое будет использовать методы EchoString и ReverseString.
Подключаемся к DataSnap-серверу и пишем клиентское приложение
Для создания нового подключения выбираем в менеджере проектов Delphi вкладку Data Explorer, ищем в дереве «DataSnap», вызываем контекстное меню узла и выбираем опцию «Add New Connection»: Задаем название нового подключения: Выбираем в Data Explorer наше новое подключение и в контекстном меню «Modify Connection«. Здесь мы должны задать настройки соединения, соответствующие тем, которые мы задавали в Диспетчере IIS: Проверяем соединение, нажав «Test Connection» — все должно работать замечательно: Теперь можете убедиться, что в Data Explorer в списке процедур появились наши серверные методы: Теперь мы можем протестировать работу EchoString и ReverseString, не создавая клиентского приложения. Для этого дважды кликаем по необходимому методу и в открывшемся окне задаем значение параметра Value: Жмем кнопку «Execute» в верхней части окна и убеждаемся, что метод вернул нам ответ: Раз соединение работает корректно — самое время написать небольшое клиентское приложение. Создаем новый проект и бросаем на форму компоненты как показано на рисунке: Теперь открываем вкладку «dbExpress» палитры компонентов Delphi, бросаем на форму компонент TSQLConnection и устанавливаем ему значение свойства «ConnectionName = FirstDataSnapConnection». В результате в Object Inspector’e Вы увидите следующие значения свойств Driver: Можете также переключить свойство Connected в значение True. Теперь создадим клиентский модуль для вызова серверных методов. Для этого снова выбираем TSQLConnection и в Object Inspector’е жмем опцию «Generate DataSnap client classes»: В итоге создастся новый модуль, который будет содержать следующий класс:
type TServerMethods1Client = class(TDSAdminClient) private FEchoStringCommand: TDBXCommand; FReverseStringCommand: TDBXCommand; public constructor Create(ADBXConnection: TDBXConnection); overload; constructor Create(ADBXConnection: TDBXConnection; AInstanceOwner: Boolean); overload; destructor Destroy; override; function EchoString(Value: string): string; function ReverseString(Value: string): string; end;
Подключаем этот модуль в uses нашего главного модуля приложения и пишем такой обработчик OnClick кнопки:
uses Unit1; {$R *.dfm} procedure TForm17.Button1Click(Sender: TObject); var Server: TServerMethods1Client; begin Server:= TServerMethods1Client.Create(SQLConnection1.DBXConnection); try label3.Caption:=Server.EchoString(Edit1.Text); label5.Caption:=Server.ReverseString(Edit1.Text); finally Server.Free; end; end;
Вот и все наше клиентское приложение. Запускаем проект и убеждаемся, что клиент успешно вызывает наши серверные методы:
Как видите, в нашем примере все прекрасно работает. Остается только добавить то, что на этапе работы с IIS мы могли бы обойтись и без включения поддержки запуска 32-битных ISAPI-модулей, т.к. Delphi XE2 может без проблем мобрать 64-битную библиотеку. На всякий случай я проверил этот тестовый пример — скомпилировал проект ISAPI-модуля для платформы win64 и отключил для пула приложений в IIS запуск 32-битных модулей — работоспособность клиента при этом никак не нарушилась.
На сегодня картинок хватит Всем удачи и до новых встреч.
Книжная полка
Описание: Рассмотрены практические вопросы по разработке клиент-серверных приложений в среде Delphi 7 и Delphi 2005 с использованием СУБД MS SQL Server 2000, InterBase и Firebird. Приведена информация о теории построения реляционных баз данных и языке SQL. Освещены вопросы эксплуатации и администрирования СУБД. |
||
Описание: Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP и др. |
0
0
голоса
Рейтинг статьи
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.