Iis типичные вопросы


Содержание

Развертывание веб-сайта с помощью IIS

ASP.NET — Веб-сайты ASP.NET — Развертывание веб-сайта с помощью IIS

После того как IIS 8 запущен, и вы научились им управлять, можно приступать к развертыванию веб-сайтов. В простейшем случае развертывание веб-приложений ASP.NET сводится к копированию структуры каталогов приложения на целевой компьютер и настройке среды. Для простых приложений это почти всегда так. Однако если приложение использует базы данных или обращается к другим ресурсам, придется выполнить ряд дополнительных шагов. Ниже перечислены обычные факторы, требующие дополнительных действий по конфигурированию:

Скопируйте все необходимые файлы приложения на целевой компьютер. Сверх этого делать ничего не понадобится. Однако при использовании глобальных сборок, доступ к которым осуществляется через GAC, необходимо удостовериться в их существовании. Если они не существуют, их необходимо установить с помощью утилиты командной строки gacutil.exe, входящей в состав .NET Framework.

Создайте и сконфигурируйте базу данных для приложения. Важно не только создать базу данных и ее таблицы, но и настроить учетные записи для входа на сервер базы данных и пользователей базы данных. Не забывайте, что в случае применения встроенной аутентификации для подключения к базе данных SQL Server учетную запись, под которой выполняется ASP.NET (учетная запись пула приложений или учетная запись aspnet_wp.exe), потребуется сконфигурировать в качестве пользователя базы данных приложения. Подход веб-развертывания может упростить развертывание базы данных. Если же применяется другой подход, конфигурирование и заполнение баз данных придется выполнить вручную.

Сконфигурируйте IIS так, как того требует приложение. Создайте необходимые пулы приложений, сделайте каталог приложения доступным для совместного использования в качестве виртуального каталога и должным образом сконфигурируйте виртуальный каталог.

Установите права учетной записи Windows для пользователя рабочего процесса. Пользователь, от имени которого запускается рабочий процесс (w3wp.exe), нуждается в доступе для чтения к каталогам приложения. Если приложение обращается к другим ресурсам, например, к системному реестру или к журналу событий, для учетной записи рабочего процесса понадобится сконфигурировать разрешение на доступ к этим ресурсам.

Если требуется обрабатывать любые URL-адреса с расширениями имен файлов, которые отличаются от расширений, зарегистрированных при установке ASP.NET по умолчанию, добавьте отображения файлов IIS.

Сконфигурируйте ASP.NET (и настройки IIS 8.0, специфичные для приложения) в файле web.config для производственных сред. Другими словами, добавьте (или модифицируйте) любые нужные строки соединения и параметры настройки приложения, а также параметры безопасности и авторизации, параметры настройки состояния сеанса и параметры настройки глобализации.

В некоторых случаях необходимо также модифицировать файл machine.config. Например, если работа выполняется в среде веб-хостинга, а в целях балансировки нагрузки приложение работает на множестве веб-серверов, необходимо синхронизировать любые ключи шифрования, используемые для шифрования мандатов аутентификации с помощью форм или состояния представления на всех этих компьютерах. Эти ключи хранятся в файле machine.config и должны быть одинаковыми на каждом компьютере веб-фермы с тем, чтобы один компьютер мог расшифровать информацию, зашифрованную другим компьютером, ранее обрабатывавшим запрос.

Основная задача связана с развертыванием содержимого приложения на сервере IIS 8. В этой статье предполагается наличие у вас прав администратора и вход в систему сервера от имени учетной записи администратора. Если используется разделяемый сервер или поставщик услуг хостинга, то поставщик пришлет сведения об учетной записи, которая должна применяться при развертывании веб-сайта. Для простоты мы будем считать, что работа выполняется с учетной записью администратора, но при управлении собственным сервером следует подумать об использовании менее привилегированной учетной записи.

Развертывание посредством копирования файлов

Простейший способ развертывания веб-сайта предусматривает копирование файлов с рабочей станции на сервер. Несмотря на простоту, этот подход требует наличия непосредственного доступа к серверу. Именно по этой причине некоторые IT-подразделения и компании, предоставляющие услуги хостинга, не поддерживают эту опцию. Но она может быть простейшей при управлении собственным сервером или наличии особых договоренностей с компанией хостинга.

Подготовка IIS

Прежде чем развертывать веб-сайт, нужно подготовить IIS. Главное решение, которое нужно принять, касается места размещения содержимого и его влияния на конечный URL-адрес. Начнем с очевидного подхода — предположим, что необходимо, чтобы URL-адрес для содержимого данного примера был следующим:

IIS нужно подготовить так, чтобы было куда скопировать наш файл. В IIS Manager выберите элемент Default Web Site. Как следует из его имени, это сайт по умолчанию на сервере. Щелкните на нем правой кнопкой мыши и в контекстном меню выберите пункт Explore (Проводник), чтобы отрыть окно проводника Windows для заданного по умолчанию каталога IIS, которым является inetpub\wwwroot на системном томе (как правило, C:\).

Создайте каталог WebsiteDeployment, а в нем — каталог FileCopy (чтобы обеспечить существование пути inetpub\wwwroot\WebsiteDeployment\FileCopy). Закройте окно проводника, чтобы вернуться в IIS Manager. Щелкните правой кнопкой на записи Default Web Site и в контекстном меню выберите пункт Refresh (Обновить), чтобы увидеть новый каталог.

Веб-сайт

Для демонстрации этой методики развертывания мы создали очень простой веб-сайт. Исходный код содержит единственную форму ASP.NET с одной меткой:

В коде этой формы определен текст метки, отображающей версию .NET Framework, которая используется для обслуживания данного сайта:

Развертывание веб-сайта

При использовании этой методики развертывания нужно просто скопировать файлы в созданный каталог. Переместите файлы веб-сайта на сервер любым подходящим способом — посредством общего сетевого диска, съемного диска USB и т.п. — и скопируйте файлы Default.aspx и Default.aspx.cs в каталог FileCopy, созданный на сервере.

Когда файлы будут скопированы, вернитесь в окно IIS Manager на сервере, щелкните правой кнопкой на папке FileCopy в древовидном представлении и в контекстном меню выберите пункт Refresh. В нижней части экрана щелкните на кнопке Content View (Просмотр содержимого). В центральной части окна должны отобразиться два файла веб-сайта, как показано на рисунке ниже:

В этом состоит наиболее важная часть этой технологии развертывания — вначале должна быть создана структура каталогов, которая представляет необходимый URL-адрес, а затем в готовые каталоги копируются файлы веб-сайта. Посмотрим, как это выглядит на практике. Для этого выберите FileCopy в IIS Manager и щелкните на ссылке Browse (Обзор) в правой части окна. Откроется веб-браузер с загруженным URL-адресом созданной папки. Окно браузера должно выглядеть подобно показанному на рисунке ниже:

Взглянув на URL-адрес адрес, можно удостовериться в том, что был получен желаемый результат. Браузер загрузил веб-сайт из следующего адреса:

Вспомните, что localhost — это специальное имя, обозначающее текущий компьютер, а URL-адрес, в котором не указан порт, будет использовать порт 80. (В моем случае я переместил сайт на порт 8080 по причинам, указанным в предыдущей статье). Можете проверить это, направив браузер по следующему URL-адресу:

Результат будет полностью аналогичен предыдущему (professorweb в данном случае имя сервера).

Конфигурирование развертывания

Возможно, вы обратили внимание, что версией .NET Framework, о которой сообщается на рисунке выше является 4. Чтобы изменить целевую версию .NET Framework понадобится изменить параметры настойки используемого по умолчанию пула приложений. Пока не задумывайтесь о том, что собой представляют пулы приложений — они будут подробно рассматриваться позже.

В окне IIS Manager разверните элемент сервера и щелкните на элементе Application Pools (Пулы приложений). Щелкните на ссылке Set Application Pool Defaults (Определить значения по умолчанию для пула приложений) в правой части окна. В открывшемся диалоговом окне Application Pool Defaults (Значения по умолчанию для пула приложений) измените значение настройки .NET Framework Version (Версия среды .NET Framework) на необходимую:

Вернитесь в браузер и перезагрузите страницу.

IIS понадобится также указать, что развернутый сайт является приложением. Это не обязательно, но при развертывании приложений ASP.NET почти всегда будет желательным — активизируется состояние сеанса и другие функциональные средства ASP.NET. Щелкните правой кнопкой мыши на папке FileCopy в области Connections (Подключения) и в контекстном меню выберите пункт Convert to Application (Преобразовать в приложение), как показано на рисунке ниже:

Откроется диалоговое окно Add Application (Добавление приложения). Используемый пул приложений можно изменить, щелкнув на кнопке Select (Выбрать). Настроить учетную запись пользователя, которую IIS будет применять для доступа к содержимому сайта, можно с помощью кнопок Connect as. (Подкл. как. ) и Test Settings. (Тест настроек. ). Пока что просто щелкните на кнопке ОК. Возможно, придется выбрать пункт Refresh (Обновить) в меню View (Вид) (или, как это часто имеет место, закрыть и снова открыть IIS Manager), но теперь значок записи FileCopy в древовидном представлении должен измениться.

Развертывание с помощью Visual Studio

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

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

Вы можете использовать функцию Copy Web Site (Копировать веб-сайт) для передачи существующего веб-сайта в виртуальный каталог.

Вы можете использовать функцию Publish Web Site чтобы скомпилировать свой ​​сайт и передать его по новому адресу.

Создание виртуального каталога для нового веб-сайта

При создании веб-сайта в Visual Studio, вы можете одновременно создать виртуальный каталог для этого веб-сайта. Если вы сделаете это, Visual Studio не будет использовать встроенный тестовый сервер IIS Express. Вместо этого, все ваши запросы будут обрабатываться полной версией IIS.

Для создания виртуального каталога IIS сначала необходимо запустить Visual Studio с правами администратора. Затем выберите пункт меню File New Web Site и в открывшемся диалоговом окне «New Web Site» выберите HTTP для расположения сайта (вместо файловой системы). Вы можете вставить строку URL. Например, если вы укажете http://localhost/MyWebSite, Visual Studio создаст каталог MyWebSite в виртуальном каталоге C:\Inetpub\Wwwroot используемым по умолчанию:


Такой подход не является лучшим т.к. вы не сможете настроить некоторые параметры, такие как страницы по умолчанию, пользовательские ошибки и т.п. Вместо создания нового виртуального каталога с помощью Visual Studio лучше будет выбрать существующий каталог IIS, который в свою очередь можно сконфигурировать с помощью IIS Manager. Для этого щелкните по кнопке Browse (Обзор) и выберите нужный виртуальный каталог:

В этом окне вы можете добавить или удалить виртуальный каталог используя кнопки вверху справа.

Копирование веб-сайта

Visual Studio также включает в себя быстрый и простой способ для передачи файлов веб-приложения. Вам просто нужно выбрать в меню WebSite Copy Web Site. Откроется новое диалоговое окно Visual Studio, которое покажется знакомым любому, кто имел дело с различными IDE-программами для работы с сайтами, такими как Dreamweaver или Expression Web:

Это окно состоит из двух списков файлов. Слева находятся файлы в текущем проекте (на локальном жестком диске). Справа находятся файлы на целевом месте (удаленный веб-сервер). При первом открытии этого окна вы ничего не увидите справа, потому что вы не указали цель. Вы должны нажать кнопку Connect вверху, чтобы предоставить эту информацию. При этом Visual Studio откроет знакомое диалоговое окно, которое выглядит почти так же, как то, что вы видели при создании виртуального каталога для нового проекта. В этом окне вы можете выбрать одно из мест, куда нужно копировать веб-сайт:

File System

Это самый простой выбор — вы копируете файлы сайта внутри текущей файловой системы.

Local IIS

Позволяет выбирать виртуальные каталоги локального сервера IIS. Это удобно если сайт нужно будет разместить в другом каталоге.

FTP Site

Обеспечивает доступ к удаленному сайту через FTP. Многие хостинг-провайдеры предлагают доступ к сайтам через FTP, так что благодаря этой настройке вы можете сразу разворачивать свой сайт на удаленном веб-сервере, не прибегая к услугам различных FTP-программ наподобие TotalCommander:

Эта опция предлагает подключение к сайту по URL-адресу с использованием расширения FrontPage Extensions.

Как только вы выберите соответствующий пункт назначения, нажмите кнопку Open. Visual Studio попытается подключиться к удаленному сайт и получить список файлов.

ИТ База знаний

ShareIT — поделись знаниями!

Полезно

Узнать IP — адрес компьютера в интернете

Онлайн генератор устойчивых паролей

Онлайн калькулятор подсетей

Калькулятор инсталляции IP — АТС Asterisk

Руководство администратора FreePBX на русском языке

Руководство администратора Cisco UCM/CME на русском языке

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Похожие статьи

Поднимаем контроллер домена на Windows 2008 R2

Установка MySQL сервера на Windows 10

Рекурсивно найти слово в файлах и папках Linux

REST – что это? Сделай POST и отдохни

Apache или IIS – сравнение и преимущества

Про веб — сервера

Если вы, или ваша организация намереваетесь создать Web – сервис, будь то сайт или приложение, то так или иначе вы обратите внимание на наиболее популярные на рынке платформы для создания web – серверов – Apache или Internet Information Services (IIS), которые занимают около 70% от всей доли интернета.

Многие сравнивают противостояние этих двух платформ как соперничество между Microsoft и Linux. В данной статье мы беспристрастно и объективно рассмотрим плюсы и минусы этих платформ.

Apache

Apache HTTP web – сервер – полное название платформы, распространяемой организацией Apache Software Foundation как открытое программное решение или проще говоря «open-source». Программное обеспечение сервера распространяется абсолютно бесплатно и его лицензия позволяет конечному пользователю редактировать исходный код, чтобы адаптировать Apache под свои нужды, а так же, внести вклад в будущее развитие серверной платформы.

Веб – сервер Apache может работать на всех популярных операционных системах, но чаще всего он используется в рамках Linux. Именно в паре с СУБД MySQL и PHP – скриптами образуется известный комплекс программного обеспечения LAMP Web – сервер (Linux, Apache, MySQL, PHP), который повсеместно используется в сети интернет.

В рамках исследования Netcraft, проводимого в феврале 2014 года, web – сервер Apache занимал 42% рынка. Однако стоит отметить, что в том же июне 2013 года этот показатель составлял 54% и 59% в 2010 году. Это связано с улучшением позиций основного конкурента IIS и ростом позиций Nginx.


С точки зрения функционала, Apache имеет впечатляющие характеристики. Многие функции реализуются как совместимые модули, расширяющие базовый функционал, диапазон которых варьируется от поддержки языков программирования до обеспечения различных схем аутентификации. Например, это могут быть языки Perl или Python. Модули аутентификации включают в себя элементы управления доступом к различным директориям сервера, пароль, установление подлинности и так далее. Многие другие функции, такие как Secure Sockets Layer (SSL) или TLS (Transport Layer Security) так же обеспечивается модульной системой. Помимо этого, Apache поддерживает возможность развернуть несколько web – сайтов, или графических интерфейсов приложений. Веб – сервер сжимает страницы, чтобы уменьшить их размер, что обеспечивает высокую скорость их загрузки. Наряду с высоким показателем безопасности, это является конкурентной чертой Apache.

Выделим два основных недостатка Apache HTTP web – сервера:

  • Перенасыщенность функционалом: Еще раз стоит подчеркнуть, что Apache действительно чрезвычайно богат на функции, возможности и инструментарий. Но, к сожалению, в рамках типовой инсталляции пользователь задействует только 10 % от этих функций.
  • С точки зрения архитектуры, Apache, работает по модели «процессов». Это означает, что для каждого соединения Apache выделяет отдельную «коннекцию», или другими словами поток данных, что вызывает значительную загрузку. Конкуренты, а именно асинхронные платформы и сервера работающие по модели «событий», имеют преимущество обработки нескольких процессов одновременно в рамках одной транзакции.

Internet Information Services (IIS) это веб – сервер разработки компании Microsoft и занимает второе место на рынке вслед за Apache. Платформа IIS будет работать только с Windows и поставляется в комплекте с этой операционной системы. В отличие от Apache, где основную поддержку продукта предоставляет сообщество разработчиков, IIS официально поддерживается компанией Microsoft. Разработка этого продукта не так стремительна по сравнению с Apache, но как было сказано выше, одним из главных конкурентных преимуществ IIS является официальная поддержка компании Microsoft, что очень важно для крупного бизнеса. Многие специалисты в области ИТ признают IIS одним из немногих коммерческих продуктов, который по настоящему может быть конкурентом «open-source» решению.

Постоянная доработка безопасности, производительности и удобства администрирования позволили увеличить долю присутствия на рынке IIS с 21% в 2010 году до 32% в феврале 2014 (ранее указанное исследование компании Netcraft). Самые большие продвижения были сделаны с точки зрения безопасности. Версия IIS 6.0 была уязвима к атакам: известный вирус Code Red, который заменял содержимое web – сайта на баннер об авторах вируса. Важно отметить, что многие уязвимости проявляются на уровне операционной системы.

Как и Apache, IIS использует различные расширения для внедрения дополнительного функционала. Например, работа с файлами по FTP, маршрутизация с помощью Application Request Routing (ARR), который позволяет вести балансировку нагрузки и повышать отказоустойчивость, различные медиа – компоненты, аудио, видео, динамическое изменение URL и прочие. Веб – сервер IIS предлагает более высокую совместимость с программной платформой .NET Framework и ASPX (Active Server Pages) чем Apache. Важно, что в IIS поддерживаются такие функции как мониторинг, отслеживание запросов в режиме реального времени. Конечно, IIS можно назвать «условно» бесплатным, так как распространяется он в комплекте с Microsoft Windows Server.

С точки зрения производительности, IIS уступает Apache, в виду архитектурной особенности и строгой работы на Windows.

Подведем итог

И IIS и Apache имеют свои плюсы и минусы. Определиться с web – сервером поможет учет следующих факторов: Сервер IIS должен быть приобретен в комплекте с Windows, Apache не имеет официальной технической поддержки, но имеет высокие показатели безопасности, IIS отлично совместим с .NET и так далее. В таблице ниже приведены некоторые сравнительные характеристики:

Опция Apache IIS
Поддерживаемая ОС Windows, Linux, Unix, Mac OS Windows
Техническая поддержка Сообщество Корпоративная
Стоимость Полностью бесплатно Покупается в комплекте с Windows
Разработка «open-source» Проприетарное решение
Безопасность Хорошо Отлично
Производительность Хорошо Хорошо
Рынок 42% 32%
  • WEB сервер Apache
  • IIS
  • 5895
  • 83

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас :( Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации :) Просто оставьте свои данные в форме ниже.

Несколько веб сайтов IIS на одном порту и IP

По умолчанию во время установки сервера IIS (Internet Information Services) создается пустой веб-сайт “Default Web Site”, который отвечает на стандартном веб порту – TCP 80. В терминах IIS это означает, что выполнена привязка этого сайта (Binding) к порту 80. Чтобы открыть этот сайт, достаточно в браузере набрать имя сервера IIS (“http://web-srv1”) или его IP адрес (“http://10.10.0.88”). Один веб сервер IIS может обслуживать десятки и сотни сайтов, и технически можно запустить несколько веб-сайтов, которые слушают и отвечают на одном и том же порту (80 или 443). Однако из интерфейса IIS Manager, совсем не очевидно, что можно запустить второй сайт на этом же хосте без привязки его к другому порту (например, 8080). В этой статье мы разберёмся, как на одном сервере IIS запустить сразу несколько сайтов, чтобы они были привязаны к одному и тому же порту и IP адресу.

Итак, как мы уже говорили ранее, на одном сервере IIS может быть запущено множество сайтов, однако чтобы IIS мог корректно распределять HTTP запросы, каждый сайт должен идентифицироваться неким уникальным значением. Для веб сайта IIS оно формируется из трех атрибутов, комбинация которых для каждого сайта должна быть уникальной. Это:

  • номер TCP порта
  • IP адрес
  • имя узла (host header)

Информация о запущенных сайтах хранится в атрибуте ServerBindings метабазы IIS в формате IP:Port:Hostname. Таким образом, если нужно запустить несколько сайтов на одном порту и IP адресе, нужно использовать уникальный Host header. Что это такое? Host header – это часть HTTP запроса к серверу, который отправляет клиент, указывая к какому конкретно сайту он хочет обратиться. Соответственно, данный host header должен быть указан на стороне веб сервера, а в DNS содержаться корректная запись, осуществляющая соответствие между именем хоста и ip адресом веб-сервера.

Итак, предположим, что у нас на IIS уже запущен один веб сайт на 80 порту. Нам нужно добавить второй сайт на этом же порту.

В консоли управления IIS создадим второй сайт (Add Website). С именем TestSite , файлы которого будут храниться в каталоге c:\inetpub\TestSite (имя хоста пока не указываем).

После того, как вы нажмете “OK”, появится предупреждение, в котором говорится, что вы не можете использовать привязку *:80 для двух сайтов, т.е. одновременно может работать только один из них.

Согласимся с этим предупреждением. Итак, у нас появился второй сайт, также привязанный к 80 порту, но запустить его без остановки первого сайта нельзя.

Чтобы создать уникальную привязку, укажем для второго сайта другое имя (Host Name). Щелкните ПКМ по сайту TestSite и выберите пункт меню Edit Bindings. Выберите нужную привязку и нажмите Edit.

В поле Host Name укажите уникальное имя хоста, к которому должны обращаться пользователи, например TestSite.

Настроить привязку можно и из командной строки. В данном примере для IIS 7 и выше команда установки привязки будет выглядеть так:

C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:»TestSite» /+bindings.[protocol=’http’,bindingInformation=’*:80:TestSite’]

Теперь можно запустить и второй веб сайт.

Все, что осталось сделать – добавить в DNS алиас для сервера (запись типа A или CNAME), указывающую на IP адрес веб-сервера или его имя.

Создать CNAME запись для имени TestSite можно с помощью консоли DNS (dnsmgmt.msc), в качестве FQDN target host указать доменное имя вашего IIS сервера.

Создать такую запись также можно с помощью PowerShell :

Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.contoso.loc -Name testsite -ZoneName contoso.loc

Теперь в браузере попробуйте открыть сайт http://TestSite . Он должен успешно открыться.

Еще несколько полезных моментов, которые стоит упомянуть.

В том случае, если у вас используется локальный сервер IIS, сопоставление имен сайтов с IP адресом сервера выполняется через файл C:\Windows\system32\drivers\etc\hosts .

Настройки привязок хранятся в конфигурационном файле IIS ( C:\Windows\System32\inetsrv\config\applicationHost.config ) в секции

В нашем примере эта секция содержит такие данные :

По аналогии вы можете разместить и запустить на одном порту веб-сервера IIS несколько сотен сайтов.

Iis типичные вопросы


Я работал с ASP.NET на основе приложений, размещенных на IIS в прошлом, и я хорошо знаю о IIS internals и…

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

Я разработал веб-приложение MVC на своем компьютере, работающее на локальном сервере IIS Express. Моя проблема в том, что теперь клиент…

У меня есть веб-сервер со многими веб-сайтами на нем. В настоящее время они используют учетную запись администратора для физических учетных…

Я использую IIS Express 8, пока мой проект находится в разработке. У меня есть сертификат компании в личной папке учетной…

У меня есть веб-сайт , который может быть доступен только черезhttps://, Но я использую внешний API, который не имеет httpsподдержки….

Я перенес свой тест ASP.NET приложение MVC для Visual Studio 2015. Я пытаюсь разместить его во встроенном IIS Express, настроив…

У нас есть наследие VB.NET (ASPX) приложение, которое нам нужно перенести на новый сервер после того, как старый сервер разбился,…

Я использовал Vega scanner для тестирования моего веб-приложения, и он нашел некоторые уязвимости инъекции оболочки, которые можно найти, введя команды,…

У меня есть новое приложение .Net webapi, которое отлично работает на моей коробке разработки, но я не могу запустить его…

Я пытаюсь подключить Мой классический сайт ASP к базе данных MySQL. Я использую следующее: 1. OS: Windows 8.1 Pro 64…

У меня установлен IIS 7.5. Как настроить виртуальный каталог для проверки подлинности пользователей в экземпляре AD FS 2.0? Я пытался…

У меня отпуск на неделю. Не сможет ответить в течение этого времени. ожидаемый результат При использовании IIS с учетными записями…

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

Я хочу экспортировать список сертификатов, установленных на My IIS, в подробный список (имя, домен, срок действия и т. д.) В…

Мне поручено создать некоторые правила перезаписи для сайта .Net MVC в IIS 7.5. Я установил модуль перезаписи Url и настроил…

Я получаю 404 не найден коды состояния для моих файлов minified javascripts, а также есть ошибка ASP.Net не удалось загрузить…

Я установил файлы Umbraco 4.0.4.2 (так как 1and1 имеет проблемы с более новой версией, типичное дерьмо). Однако при загрузке этого…

При создании нового веб-сайта на IIS можно выбрать между «приложением» и «виртуальным каталогом». В чем разница между этими двумя вариантами?

Мне нужно написать очень простой прокси-сервис аутентификации-пользователь должен войти через веб-браузер, затем страница перенаправляет пользователя на другой URL, если вход…

Мы построили несколько веб-служб на основе .net. Теперь мы хотим создать единый пользовательский интерфейс для управления этими видами услуг на…

Я добавил страницу обслуживания на моем сайте. На этой странице Я просто поместил одно изображение и сообщение. Изображение находится в…

Я использую базовую проверку подлинности IIS, и мое последнее препятствие, кажется, с Opera. Сертификат не отображается как поступающий от «доверенного…

Как получить идентификатор appPool программно в C#? Мне нужен пользователь пула приложений, а не пользователь, который в данный момент вошел…

Среда: IIS 7. У меня есть сайт по умолчанию www.domain.com. Папка C:Inetpub/wwwroot/domain Существует поддомен www.subdomain.domain.com. Папка C:Inetpub/wwwroot/domain/subdomain. Теперь я создал…

У меня есть веб-служба, которая вызывает SQL-запрос и возвращает результат. Запрос в порядке, и веб-служба в порядке. Когда я запускаю…

Мне нужно получить доступ к файлу шрифта в моем приложении с сервера, который я также владею. Он работает для всех…

У меня возникли проблемы с загрузкой файлов(с нестандартными расширениями) из сопоставленной папки в IIS. Группа » все » имеет полный…

У меня возникли проблемы при публикации служб на IIS. Сначала я опишу свой сценарий. На данный момент у меня есть…

Я понимаю, что приложения под одним доменным именем могут общаться друг с другом через cookie-файлы. Но как это переводится на…

Я (к сожалению) с помощью IIS, и я делаю перезапись, которая создает дружественные URL-адреса профиля. Я придумал работоспособное решение, но…

Я борюсь с IIS переписать regex на некоторое время сейчас. Все, что мне нужно сделать, это удалить весь текст после…

Мой код C# может выполняться в приложении MVC3 под IIS (в настоящее время 7.5, но я не хотел бы зависеть…

Я столкнулся с проблемой при попытке установить WebORB 4.5 и запустить консоль администрирования. Так как установка с exe не работает…

У меня есть метод POST контроллера Web API, который ведет себя хорошо локально и на сервере тестирования. Если все идет…

Я не буду вдаваться в детали, если мне не нужно, но у меня есть приложение, которое загружает 8 виджетов в…

У меня есть пользовательская страница ошибки. Он работает на моем производственном сервере, но не на моей машине разработки. Это Windows…

Я пытаюсь использовать систему.Net.WebClient в приложении WinForms для загрузки файла на сервер IIS6, который имеет проверку подлинности Windows, как это…

Я хочу иметь возможность развернуть новую версию моего asp.net/mvc веб-сайт без потери состояния сеанса клиента или причинения любого простоя. Способ,…

Я создал веб-сайт с asp.net и Этот веб-сайт обрабатывает данные в базе данных и записывает на экран форматированный XML (…

В чем разница между публикацией веб-сайта в inetpubwwwroot и в любом другом месте на веб-сервере, например C:Website. Я заметил, что…


Я знаю, что ppl уже задавал вопросы, касающиеся шифрования веб.конфиг. im также пытается зашифровать мой тестовый файл конфигурации, но im…

Поэтому я пытаюсь развернуть приложение MVC 3 на веб-сервере. Если я не включу систему.Сеть.MVC dll в каталоге bin, я получаю…

Я обнаружил, что в некоторых случаях я могу редактировать источник во время отладки, есть ли какие-либо другие преимущества использования встроенного…

мой сайт открывается с xx.xxx.xxx.xxx IP-адрес до пятницы работал нормально..после подопечные не смогли просмотреть сайт в webbrowser…в чем может быть…

У меня есть старые ссылки, как это /folder/page/(dynamic q) Хочу перенаправить на новые ссылки /newfolder/newpage?q=(dynamic q) как я могу это…

У меня есть SWF, который работает в интернете, но не через интрасеть. SWF загружает исходное содержимое XML путем привязки к…

У меня есть некоторые проблемы с моими IIS сегодня. Я пытаюсь загрузить a .img файл, который хранится на моем FTP-сервере,…

Я не думаю, что это дубликат системы.Net.WebRequest не уважая hosts-файл, так как я не считаю, что мои проблемы связаны с…

Я рассматривал модуль «инициализация приложения» для IIS 7.5 (который запечен в IIS 8 ) и serviceAutoStartProviders, которые могут быть настроены…

Мне нужна помощь с массивом, над которым я работаю. Я извлекаю некоторые данные из запроса JSON и записываю их в…

Есть некоторые VB.NET код выглядит следующим образом: If (strSPToken <> «ERROR») AndAlso (strSPToken <> «EMPTY») OrElse (strSPToken <> «») Then…

Все мои приложения работали нормально, но вдруг все сайты под IIS не загружают css, картинки, скрипты. Это перенаправление на страницу…

Я использовал сервер.mappath () в моем приложении.Он работает нормально в режиме отладки, но после публикации в IIS он не работает….

У меня есть ASP.NET 4.0 приложение под управлением Windows 7 / IIS 7.5 в «ASP.NET v4.0 классический» пул приложений, который…

У меня есть машина вдов, размещенная goddady, и мне нужно создать правило для пересылки любого запроса с URL-адресом, указывающим на…

В IIS 5.1 я установил безопасность веб-сайта на основные проверки подлинности и я установил страницу для пользовательской ошибки в IIS,…

Я создал простой веб-сайт, на котором перечислены документы word, хранящиеся на нашем сервере. Наш сайт использует обычную аутентификацию с SSL…

Я использую IIS 5.1 на сервере 2000. Я установил asp.net страница для пользовательской ошибки в IIS, которая C:InetpubwwwrootCustom_ErrorIIS_Error.aspx. Пользовательская страница…

У меня есть двухпроцессорный компьютер. Если я запускаю только один рабочий процесс, потоки этого одного процесса будут работать на обоих…

У меня есть следующий url переписать код в моем интернете.конфиг Я хочу переслать что угодно .htm к бренду.aspx. так что…

У меня есть веб-сайт со следующими виртуальными каталогами, каждый из которых настроен как корень приложения: _root / website1 _root /…

Я удалил свой веб-сайт из IIS, и теперь, когда я пытаюсь отладить, я получаю ошибку Unable to start debugging on…

У меня установлен сервер Windows 2008 x64 с WSUS и, таким образом, сломанные веб-сайты, которые используют 32-разрядные пулы приложений. Эта…

Как вы знаете, IIS 6+ может совместно использовать порт 80 с другими приложениями HTTP, работающими в различных процессах. Однако моя…

У меня есть веб-роль Windows Azure, которая содержит веб-сайт с использованием ASP.NET MVC. Когда приходит HTTP-запрос и страница сначала загружается…

Я не могу понять, как действовать в следующем сценарии. У меня есть служба WCF и работает с безопасностью, как это:…

У меня есть веб-служба (размещенная на IIS), которая вставляет данные в базу данных(Xampp) [WebMethod] public void Insert(int a) < string…

Я вижу следующую ошибку при попытке обслуживания моих файлов PHP в IIS на Windows, все было хорошо на моем сервере…

У меня правильно настроена веб-ферма с 7 серверами на ней, я использовал графический интерфейс IIS Webfarm для добавления этих серверов….

Наш проект использует Silverlight 4 и Microsoft Pivot Viewer, который является инструментом представления данных, который работает в Silverlight. Microsoft Pivot…

В настоящее время я работаю на сервере IIS с php, mysql и smarty, но я застрял со следующей ошибкой… Предупреждающий:…

Я хочу вернуть изображение через webservice, поэтому я пытался преобразовать изображение в базе данных в байт, затем из байта в…

Мы изменили наш блог, и теперь url-адреса нет .aspx на конце их, но URL-адрес все еще тот же в противном…

Я использую серверную обработку для моих таблиц данных в MVC 2.0, размещенных на сервере с помощью IIS 7.0. У меня…

Мы используем ASP.NET но иногда наши приложения используют очень много ресурсов процессора или оперативной памяти. Я хочу ограничить ресурсы для…

I want to get firstdate、lastdate of month,I try NSDateComponents *components = [calendar components:units fromDate:[NSDate date]]; [components setDay:1]; self.currentDate = [calendar…

У меня есть вопрос для сопоставления обработчика ISAPI в IIS 7. Я добавил отображение, и я хотел бы знать, как…

Я думаю, HttpModules для IIS, обработчик Pre и Post запросов и некоторый пользовательский модуль для Apache. Пожалуйста только предложите открытый…

Я разработал приложение Silverlight локально на моем ноутбуке. Все работает хорошо, однако, когда я развертываю его на сервере веб-служба работает…

Ну я кодирую сайт, а теперь застрял в части jQuery, которая не моя самая сильная вещь. Сайт содержит навигационную панель…

Как разрешить ASP.NET 4.0 запрос Sybase базы данных на IIS 5.1? Я запускал свой веб-сайт в режиме отладки, и все…


У меня есть приложение silverlight, работающее как на моем локальном компьютере, так и на веб-сервере. На моем локальном компьютере установлена…

Я разработал веб-приложение с помощью платформы ASP .NET MVC 3. Поэтому у меня есть проект Visual Studio 2010 для разработки…

Я довольно новичок в форумах и в программировании в целом. Мой вопрос относительно LogiXML следующий: У меня есть веб-сайт LogiXML,…

У меня есть мой IIS 6 работает мой веб-сайт. Это на Windows Server 2003, который имеет 4 ГБ оперативной памяти….

Я хочу преобразовать код состояния 404 в 301. У меня лучший индексированный сайт в SEO, и я не хочу потерять…

Мы запускаем веб-приложение с большим количеством (50+) узлов службы WCF (написано на C#, работает на Win 2008R2/IIS 7.5) для интеграции…

I want to upload images, it works fine on my machine but when I put my website on IIS7 server…

Я нуб, когда дело доходит до ASP.NET. Я знаю несколько основных команд, таких как Response.Перенаправление («URL») для перенаправления веб-страницы приложения…

Я сталкиваюсь с странной проблемой при загрузке asp.net страницы с IE9. В основном, я работаю с устаревшей системой, которая медленно…

Так что это связано с моим вопросом здесь . Таким образом, у меня уже есть существующая служба wcf, размещенная на…

Я установил IIS на Windows XP SP3. Когда я хочу получить доступ к localhost из моего браузера, появляется окно аутентификации…

У меня есть небольшой я только что написал, который использует следующий шаблон uri. [UriTemplate = «xml///

Я прочитал много сообщений здесь в отношении 404 страниц, отображаемых как пустые, но не могу найти ничего, что решило проблему….

Зачем делать все мое .axd файлы генерируют ошибку 404, когда на нашем рабочем сервере?

Я создаю пакет установки с помощью инструмента WIX. У меня есть требование для включения/отключения проверки подлинности форм для определенного виртуального…

Можно ли сопоставить конкретное имя файла и расширение ASP.NET в IISExpress (через web.config)? Мне нужно ASP.NET обработка запросов к opensearch.XML.

Я программирую веб-сайт с MVC 3.0, который использует EntityFrame work 4.0, в слое контроллера у меня есть это: public ViewResult…

IIS 7.0: краткая инструкция для системного администратора. Часть 1 – пpoверка результатов установки.

Продолжаем говорить об процедуре установки веб сервера под управлением IIS 7.0 на Windows Server 2008, которая была рассмотрена в предыдущем посте.

Теперь перейдем к проверке результатов установки IIS 7.0. Самый простой вариант проверить, работает ли веб сервер, особенно – находясь за локальной консолью, это обратиться из любого веб-браузера по адресу http://localhost/. Далее, проверить с локальной и удаленной машины по IP-адресу.

При установке IIS 7.0 создается веб сайт по умолчанию, сконфигурированный на ответ при любом URL-запросе, поступившем на порт 80 любого сетевого интерфейса сервера, на котором установлен IIS 7.0. Т.е. запрос браузера типа http://localhost/ должен быть обработан как запрос к веб сайту по умолчанию. Содержимое сайта по умолчанию представляет собой 2 файла – iisstart.htm и welcome.png (который отображается в iisstart.htm), которые и будут открыты клиентом. Поэтому результат обращения к localhost будет иметь следующий вид:

Теперь, если все хорошо (если «плохо» – поиск неисправностей и ошибок мы рассмотрим позже, в отдельном разделе), убедимся, что все модули, которые должны быть установлены по умолчанию – подключены и работают, а базовая конфигурация – отвечает нашим требованиям.

1. Основным инструментом управления IIS 7.0 является консоль Internet Information Services (IIS) Manager, которая устанавливается по умолчанию, вместе с ролью Web Server в Windows Server 2008 (IIS Management Console, раздел Management Tools при установки модулей). После соответствующей установки консоль управления IIS 7.0 можно найти, как дочернюю запись внутри раздела Web Server (IIS) в разделе ролей Server Manager, либо как пункт в разделе Administrative Tools меню Start, либо выполнив команду inetmgr (в командной строке или через пункт Run того же меню Start).

2. При старте консоль Internet Information Services (IIS) Manager открывается с «домашней страницей», на которой в виде панелей находится информация о том, к каким веб серверам и веб сайтам подключался пользователь консоли до этого (если консоль только установлена вместе с ролью Web Server (IIS), то в консоле присутствует запись только о локальном веб сервере), также присутствуют ссылки для выбора подключения к другим серверам, веб сайтам, веб приложениям и папкам, а также ссылки на внешние ресурсы, посвященные IIS.

3. Кроме того, на домашней странице присутствует панель новостей, которые подгружаются как новостная RSS-лента с сайта www.iis.net, если администратор нажимает на ссылку Enable IIS News. Новости, кстати, очень полезные, рекомендуется включать и использовать эту информацию в повседневной работе.

4. При подключении к какому либо веб серверу IIS 7.0 консоль Internet Information Services (IIS) Manager представляет его конфигурацию, как логическую структуру – уровень самого веб сервера, чьи настройки являются глобальными и распространяются по умолчанию на все веб сайты, пулы приложений и, сообственно, веб сайты со своими настройками. Эта конфигурационная иерархия, в виде разворачивающегося дерева, начинающегося с узла с именем (или IP) веб сервера, отображается в левой панели консоли Internet Information Services (IIS) Manager.

5. Если выбрать какой-то узел в дереве конфигурации, то в центральной панель консоли Internet Information Services (IIS) Manager будут отображены в виде отдельных иконок все параметры (а также – модули или списки), соответствующие конфигурации выбранного узла, а в правой панели – набор контекстных задач и операций, которые администратор (или пользователь) может выполнить над данным узлом.

6. Выбираем верхний узел, узел веб сервера, в котором представлены иконки, отвечающие за параметры работы модулей всего веб сервера, эти параметры наследуются по умолчанию для всех веб сайтов. Убеждаемся, что все необходимые модули установлены и отображены. Снимок экрана при установке конфигурации по умолчанию приведен ниже.

7. В правой панели при выборе узла веб сайта отображаются все операции, возможные для выполнения непосредственно с веб сервером (службами IIS в целом) в данном конексте – перезапуск, останов, запуск, переход к пулам приложений и сайтам.

8. Убеждаемся, что пулы приложений (Application Pools) сконфигурированы. Пулы приложений будут рассмотрены позже. Пулы являются дочерним узлом в дереве конфигурации для узла веб сайта. При установке по умолчанию создается только один пул – DefaultAppPool, в котором регистрируется одно приложение – сконфигурированный по умолчанию веб сайт, работу которого мы уже проверили. См. снимок экрана.

9. Ниже узла пулов приложений в дереве конфигурации находится узел веб сайтов (Sites), при выборе которого отображается список работающих на данном веб сервере веб сайтов. По умолчанию создается один веб сайт под названием Default Web Site с внутренним номером (ID) равным 1, «привязанный» на 80 порт всех IP-адресах всех сетевых интерфейсов к любому URL в запросе, и использующий в качестве домашнего каталога своего контента каталог с путем %SystemDrive%\inetpub\wwwroot (что при установленном Windows Server 2008 на диск C: соответствует C: \inetpub\wwwroot).

10. При выборе в левой панели консоли узла веб сайта (Default Web Site), также, как и в случае с выбором узла веб сервера, в центральной панели отображаются иконки для доступа к параметрам конфигурации различных модулей, на этот раз – конкретного веб сайта. Убеждаемся, что также, как и в случае со всем веб сервером, все необходимые модули представлены в центральной панели.

11. В правой панели консоли, аналогично панели для всего веб сервера, отображаются контекстные команды, правда, на этот раз их список серьезно расширен – старт/стоп/перезапуск процесса веб сайта, просмотр его базовых и расширенных настроек (а не параметров модулей), настройки привязки (адрес, порт, доменное имя – по сочетанию которых будет отвечать на запросы данный веб сайт) и т.п.

В принципе, для базовой проверки работоспособности и целостности установки данных шагов вполне достаточно. Но если вы хотите поближе познакомиться с «полным» набором настроек и конфигурацией «по умолчанию» – то можете проделать следующие шаги.

12. Выберите узел веб сервера в дереве конфигурации в левой панели консоли Internet Information Services (IIS) Manager. В центральной панели кликните на иконку Modules. В центральной панели откроется следующий полный список установленных по умолчанию модулей, представляющий из себя перечень .dll файлов.

13. Чтобы убедиться, что веб сервер будет работать только со статическими файлами (по умолчанию) или только с нужными вам расширениями – выберите снова узел веб сервера и в центральной панели кликните на иконку Handler Mappings. Откроется список «привязки» расширений вызываемых на веб сайте пользователем файлов и привязанных к данным расширениям модулям, выполняющим обработку данного вызова. Обратите внимание, что по умолчанию все файлы привязаны к модулю обработки статических файлов (т.е. запрос какого либо скриптового или исполнимого файла из домашнего каталога веб сайта не будет приводить к его исполнению на сервере, а лишь к передаче данного файла пользователю), а также к модулям документа по умолчанию и просмотра каталога. С этими модулями мы познакомимся позже.

14. И, наконец, для того, чтобы убедиться в безопасности веб сайта – проверьте параметры его аутентификации. Для этого выбираем иконку Authentication в той же центральной панели. По умолчанию никаких модулей аутентификации веб сервер (и веб сайты) не поддерживает. Т.е. все подключения для него анонимны. В чем безопасность? Это значит, что пользователям будет доступен только то содержимое домашних каталогов сайтов – файлы и подкаталоги – которые имеют NTFS разрешения для чтения «всем» (Everyone). В случае, если таких разрешений файл не имеет, пользователю будет отказано в доступе с соответствующей ошибкой 401. Если же пользователь попробует каким-то образом аутентифицироваться в процессе HTTP запроса на сервере – то поскольку никаких модулей аутентификации, кроме анонимного, на веб сервере не установлено – он снова получит соответствующую ошибку 401.

Такие настройки безопасности по умолчанию – только анонимные пользователи – позволяют гарантировать защиту данных на сервере, для которых требуются соответствующие разрешения, а также – что механизм аутентификации веб сервера (которого в данном случае просто нет) не будет использован для перебора паролей и прочих попыток «взлома» через учетные записи.

Итак, сервер установлен и его работоспособность проверена. Теперь достаточно поместить какой либо статический контент (файлы HTML, изображения, документы и файлы для выгрузки пользователями) в домашний каталог его сайта по умолчанию (напоминаю, что это в большинстве случаев C:\inetpub\wwwroot) – и веб сайт под управлением IIS 7.0 начнет работать. Ну, и конечно, для внешних сайтов – не забыть прописать их A-record в вашей доменной зоне на публичном DNS сервере.

В следующей части – установка IIS 7.0 в режиме командной строки, особенности работы IIS 7.0 на Server Core.


Iis типичные вопросы

В этой статье автор дает ответы на часто задаваемые вопросы по настройке Internet Information Server (IIS) версии 5.0.

В: Я использую IIS 5.0 в среде Windows 2000 с Service Pack 1 (SP1). Чтобы повысить уровень информационной безопасности, я изменил учетную запись IUSR_servername. Если эту учетную запись удалить, она вновь появляется после перезагрузки системы. Значит ли это, что я обнаружил ошибку?
О: Вы обнаружили новую недокументированную особенность IIS 5.0. Даже если учетную запись переименовать, после перезагрузки появится новая. В документации Microsoft не объясняется, зачем реализована данная «функция», а в устанавливаемом вместе с IIS файле README содержатся лишь скудные упоминания о ней. Единственный возможный обходной путь — создать еще одну учетную запись для доступа в режиме Anonymous, в имени которого нет обозначения IUSR.
В: Наша компания ежедневно пересылает клиентам файлы в формате Adobe Acrobat Portable Document Format (PDF). Можно ли организовать потоковую передачу файлов, чтобы клиенты могли просматривать их в процессе загрузки?
О: Да. PDF-файлы чрезвычайно полезны для точного воспроизведения онлайнового контента, в том числе программной документации, специальных отчетов и даже целых книг. К сожалению, в Web-серверах и браузерах нет встроенных средств для работы с PDF-файлами. Следовательно, для создания и чтения PDF-файлов необходимы специальные программы — Adobe Acrobat.

Программа Acrobat Reader распространяется бесплатно, а процедура ее установки проста — в ней нет параметров, определяемых пользователем. После установки Acrobat Reader интегрируется с Microsoft Internet Explorer (IE) и автоматически вызывается при загрузке PDF-файла. Название Acrobat Reader выбрано очень удачно: утилита лишь выводит PDF-файл на экран, не позволяя внести в него никаких изменений. Эта особенность программы явно понравилась авторам онлайновых публикаций.

С помощью Acrobat Reader можно просматривать PDF-файлы, но чтобы создавать их, необходимо купить и установить полную версию Acrobat. Чтобы создать PDF-файл в программе Acrobat, достаточно скопировать документ на пиктограмму Acrobat, а затем перепечатать его в папку Monitored для автоматического преобразования, или выбрать пункт Create Adobe PDF из меню File приложения Microsoft Office. Документ PDF будет одинаково выглядеть на машинах Windows, Unix и Macintosh.

Во многих компаниях IIS используют в качестве средства для пересылки клиентам PDF-файлов. В программе Acrobat 4.0 реализован режим сохранения, именуемый Optimize, в котором можно пересылать PDF-файлы по одной странице. Чтобы выполнить эту операцию, нужно щелкнуть на пункте Save As и выбрать флажок Optimize. Если этот флажок не установить, то клиентам придется ждать окончания загрузки всего документа. Более подробные сведения о функции Optimize можно получить на Web-узле компании Adobe, выполнив поиск по ключевому слову byteserving.

Доставка клиентам заранее подготовленных PDF-файлов — не единственное возможное решение. PDF-файлы можно строить «на ходу». ActivePDF располагает набором серверных утилит для динамического генерирования PDF-файлов из среды Active Server Pages (ASP) или ColdFusion. С помощью этих утилит можно не просто пересылать статические документы, а динамически генерировать PDF-файлы. Концепция метода напоминает отличия между ASP и HTML. С помощью ActivePDF можно использовать сценарии записи для передачи запросов в базу данных и вывода результатов в PDF-файл, который затем загружается и прочитывается в Acrobat Reader. Похожие утилиты можно найти по адресу http://www.pdflib.com.

И наконец, ответ будет неполным, если не упомянуть еще об одной области, где PDF-файлы представляют интерес для IIS-администраторов. Использование Microsoft Index Server — обычный метод поиска на Web-узлах, где хранятся большие объемы информации. Index Server автоматически индексирует документы HTML и Office и располагает быстрым поисковым механизмом со встроенными интерфейсами для IIS. В Index Server нет собственных функций поиска информации в PDF-файлах. Чтобы устранить этот недостаток, компания Adobe построила «фильтр» Index Server. В результате в формируемых Index Server ответах на запросы могут быть указаны PDF-документы. Фильтр можно загрузить по адресу http://www.adobe.com/support/downloads/8122.htm.

В: После установки IIS 5.0 я обнаружил, что функция построения новых Web-узлов исчезла из меню New Tasks, к которому я обращался, щелкнув правой кнопкой мыши на имени сервера в Internet Services Manager (ISM). IIS 5.0 рассчитан на работу с несколькими Web-узлами. Каким образом можно построить новый Web-узел при отсутствии в меню необходимой функции?
О: Установив Microsoft Windows NT 4.0 Open Pack на NT Workstation 4.0 или Windows 9x, вы получаете Personal Web Server. В сущности, PWS представляет собой упрощенную версию IIS 4.0, с помощью которой можно проектировать файлы ASP.

IIS 5.0 интегрирован с Windows 2000, поэтому программу можно найти на компакт-дисках Windows 2000 Server и Windows 2000 Professional. Однако, если установить IIS 5.0 в Windows 2000 Pro, то вместо PWS вы получите Web-сервер, называемый IIS 5.0. Эта особенность сбивает с толку многих людей, ошибочно полагающих, что версии IIS 5.0 для Windows 2000 Server и Windows 2000 Pro наделены одинаковой функциональностью. Ошибка легко объяснима, так как серверы называются одинаково, но тем не менее, между ними есть существенные различия. Одно из ограничений версии IIS 5.0 для Windows 2000 Pro состоит в том, что она позволяет создать лишь один Web-узел. Поэтому я полагаю, что вы установили IIS 5.0 для Windows 2000 Pro и рассчитываете получить полнофункциональный пакет. Кроме того, версии IIS 5.0 для Windows 2000 Pro свойственны следующие ограничения:

* Число одновременных соединений не превышает 10. Поскольку для запроса?? загрузки страницы может потребоваться несколько сеансов TCP, на самом деле число одновременных соединений составляет 40.

* Отсутствует закладка Operators. С помощью закладки Operators можно указать, какие группы или пользователи могут администрировать Web-узел. В этой функции нет необходимости, поскольку Windows 2000 Pro — не сервер и не поддерживает нескольких Web-узлов.

* Нельзя ограничить доступ по IP-адресу или имени домена.

* В разделе Performance невозможно применить резервирование полосы пропускания или процессов. Поэтому нельзя выбрать флажок Enforce limits.

* Администрирование на базе браузера невозможно, потому что IIS 5.0 в среде Windows 2000 Pro непригоден для работы с несколькими виртуальными Web-серверами. А виртуальный Web-сервер необходим для функционирования инструментов администрирования на базе браузера.

Если установить IIS 5.0 для Windows 2000 Pro, то элемент Internet Services Manager даже не загружается в меню Administrative Tools (как в среде Windows 2000 Server). Необходимо настроить консоль Microsoft Management Console (MMC) и загрузить встраиваемый модуль Internet Information Services (то есть, iis.msc) из каталога \%systemroot%\system32\inetsrv. Однако, для управления IIS 5.0 в среде Windows 2000 Pro можно использовать Personal Web Manager (доступный из меню Administrative Tools).

Еще одно предупреждение относительно IIS 5.0 и Windows 2000 Pro: многие программисты строят сложные системы, прекрасно работающие с PWS в Windows 2000 Pro. Однако при переносе этих систем в среду Windows 2000 Server возникают трудности с ODBC, полномочиями, ASP и другими компонентами среды. Получив вопрос вроде «Мое приложение прекрасно работает с Windows 95 PWS, но не в Windows 2000 Server. В чем ошибка?», я отвечаю: «В чем ошибка процесса разработки, если вы проектируете программы для среды, для которой они не предназначены?» Конечно, допустимо программировать на системе, совместимой с предполагаемой целевой средой, но в таком процессе разработки должен быть предусмотрен промежуточный этап. При переходе от среды рабочей станции к серверной среде следует быть готовым к тому, что между ними существуют некоторые различия.

В: Когда пользователь обращается к IIS-серверу и запрашивает Web-страницу, IIS-сервер раскрывает свой IP-адрес в ходе сеанса связи HTTP между Web-сервером и пользователем. В целях безопасности наша компания стремится скрыть внутренние сетевые адреса. Каким образом можно изменить поведение IIS?
О: В некоторых случаях (не всегда) IIS возвращает IP-адрес. В статье Microsoft «Internet Information Server Returns IP Address in HTTP Header (Content-Location)», http://support.microsoft.com/support/kb/articles/q218/1/80.asp говорится, что IIS раскрывает IP-адрес только при пересылке статического HTML-контента. В этом случае ответ IIS выглядит примерно так: В этом сообщении явно указан внутренний IP-адрес сервера. Чтобы изменить реакцию сервера, нужно дополнить метабазу новым элементом. Введите в каталоге \winnt\system32\inetsrv\adminsamples по приглашению командной строки:

Затем нажмите Enter. В результате в метабазе появляется нужная запись. Не забудьте создать резервную копию метабазы перед внесением изменений, а после остановите и вновь запустите Web-сервер. Данный прием работает в IIS 5.0 и IIS 4.0. Ответ IIS будет выглядеть иначе: В: Я установил IIS 5.0 на машине с Windows 2000 Server своей компании. Теперь пользователи не могут изменить свои пароли через intranet, как они делали это с IIS 4.0. Каким образом можно вернуть им данную возможность, которая важна для работы компании?
О: При чистой установке IIS 5.0 пользователи имеют возможность менять пароли, но из-за угрозы безопасности, возникающей при изменении пользователями паролей через intranet или Internet, в IIS 5.0 данная функция по умолчанию (как в IIS 4.0) не активизируется. Чтобы дать пользователям это право, необходимо создать виртуальную папку IISADMPWD и дополнить метабазу новым элементом. При замене IIS 4.0 на IIS 5.0 эти операции не нужны. Прежде чем вносить какие-либо изменения, необходимо остановить и перезапустить Web-службу и создать резервную копию метабазы.

Во-первых, нужно выбрать Web-узел, в котором будет находиться виртуальный каталог, указывающий на установленную программу, позволяющую пользователям изменять пароли. Например, можно выбрать применяемый IIS 4.0 узел Default Web Site. Во-вторых, чтобы изменить метабазу, нужно ввести в каталоге \winnt\system32\inetsrv\adminsamples по приглашению командной строки:

Каковы все учетные записи пользователей для IIS / ASP.NET и чем они отличаются?

под Windows Server 2008 с ASP.NET 4.0 установлен целый ряд связанных учетных записей пользователей, и я не могу понять, какой из них, как они отличаются, и какой из них действительно тот, под которым работает мое приложение. Вот список:

  • группу iis_iusrs
  • запись iusr
  • DefaultAppPool
  • ASP.NET v4.0
  • NETWORK_SERVICE
  • МЕСТНАЯ СЛУЖБА.

1 ответов

это очень хороший вопрос, и, к сожалению, многие разработчики не задают достаточно вопросов о IIS / ASP.NET security в контексте веб-разработчика и настройки IIS. Вот так.

чтобы покрыть перечисленные идентификаторы:

IIS_IUSRS:

это аналогично старому IIS6 IIS_WPG группы. Это встроенная группа безопасности настроена таким образом, что любой член этой группы может выступать в качестве пула приложений тождественность.

IUSR:

этот счет аналогичен старому IUSR_ локальная учетная запись, которая была анонимным пользователем по умолчанию для веб-сайтов IIS5 и IIS6 (т. е. настроенная на вкладке Безопасность каталога свойств сайта).

подробнее о IIS_IUSRS и IUSR посмотреть:

DefaultAppPool:

если пул приложений настроен для запуска с помощью функции идентификации пула приложений, то «синтезированная» учетная запись называется IIS AppPool\

будет создан на лету, чтобы использовать в качестве удостоверения пула. В этом случае будет синтезированная учетная запись под названием IIS AppPool\DefaultAppPool создано на время жизни бассейна. Если вы удалите пул, эта учетная запись больше не будет существовать. При применении разрешений к файлам и папкам необходимо добавить с помощью IIS AppPool\

. Вы также не увидите эти учетные записи пула в Диспетчере пользователей компьютеров. Дополнительные сведения см. В следующем разделе:

ASP.NET v4.0:

это будет идентификатор пула приложений для ASP.NET v4.0 Пул Приложений. См. DefaultAppPool выше.

NETWORK SERVICE:

на NETWORK SERVICE учетная запись-это встроенный идентификатор представлен в Windows 2003. NETWORK SERVICE — это низко привилегированная учетная запись, под которой вы можете запускать пулы приложений и веб-сайты. Веб-сайт, работающий в пуле Windows 2003, все еще может олицетворять анонимную учетную запись сайта (IUSR_ или что бы вы ни настроили как анонимное удостоверение).

In ASP.NET до Windows 2008 вы могли бы иметь ASP.NET выполнение запросов под учетной записью пула приложений (обычно NETWORK SERVICE ). В качестве альтернативы вы можете настроить ASP.NET к олицетворение анонимной учетной записи сайта через настройка в web.config файл локально (если этот параметр заблокирован, то это должно быть сделано администратором в ).


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

в IIS7.x / ASP.Управление net impersonation теперь настроено через аутентификацию функция конфигурации сайта. Таким образом, вы можете настроить запуск в качестве идентификатора пула, IUSR или специального анонимного аккаунта.

LOCAL SERVICE:

на LOCAL SERVICE учетная запись-это встроенная учетная запись, используемая диспетчером управления службами. Она имеет минимальный набор привилегий на локальном компьютере. Он имеет довольно ограниченный объем использования:

LOCAL SYSTEM:

вы не спрашивали об этом, но я добавляю для полноты. Это локальная встроенная учетная запись. У него достаточно обширные привилегии и доверие. Никогда не следует настраивать веб-сайт или пул приложений для работы под этим удостоверением.

На Практике:

на практике предпочтительным подход к обеспечению безопасности веб-сайта (если сайт получает собственный пул приложений — что является значением по умолчанию для нового сайта в MMC IIS7) должен выполняться под Application Pool Identity . Это означает установку идентификатора сайта в расширенных настройках пула приложений в Application Pool Identity :

на веб-сайте вы должны затем настроить функцию аутентификации:

щелкните правой кнопкой мыши и отредактируйте анонимную аутентификацию запись:

обеспечить «удостоверение пула приложений» выбран:

когда вы приходите, чтобы применить права доступа к файлам и папкам, вы предоставляете удостоверение пула приложений, какие права требуются. Например, если вы предоставляете удостоверение пула приложений для ASP.NET v4.0 разрешения пула, то вы можете сделать это через Explorer:

нажмите Кнопка «Проверить имена»:

или вы можете сделать это с помощью ICACLS.EXE утилиты:

. или. если пул приложений сайта называется BobsCatPicBlog затем:

я надеюсь, это поможет прояснить ситуацию.

обновление:

я просто наткнулся на этот отличный ответ от 2009 года, который содержит кучу полезной информации, стоит прочитать:

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

IIS (Internet Information Services)

Internet Information Services
Разработчики: Microsoft
Постоянный выпуск: 10 / 29 July 2015 года ; 4 years ago ( 2015-07-29 )
Состояние разработки: Active
Написана на: C++ (язык программирования) [1]
Операционная система: Windows NT
Локализация: Same languages as Windows
Тип ПО: Web server
Лицензия: Part of Windows NT (same license)
Веб-сайт iis .net

IIS (англ. Internet Information Services ) является Visual Basic приложением, которое располагается на веб-сервере и отвечает на запросы браузера. Приложение IIS использует HTML для представления своего пользовательского интерфейса и использует скомпилированый код Visual Basic для обработки запросов и реагирования на события в браузере. Для пользователя приложение IIS представляется рядом страниц HTML. Для разработчика приложение IIS состоит из особого типа объекта, называемого WebClass, который в свою очередь, содержит ряд ресурсов, называемых webitems. WebClass выступает в качестве центрального функционального блока приложения, обрабатывающего данные из браузера и отправляющего информацию пользователям. Разработчик описывает ряд процедур, которые определяют, каким образом WebClass отвечает на эти запросы. webitems являются HTML-страницами и другими данными, которые WebClass может отправить в браузер в ответ на запрос.

Содержание

Архитектура

Internet Information Services (IIS) 7 и выше обеспечивает архитектуру обработки запросов, которая включает в себя:

  • Служба активации процесса Windows (WAS), который позволяет сайтам использовать отличающиеся от HTTP и HTTPS протоколы.
  • Веб-движок сервера, который может быть изменен путем добавления или удаления модулей.
  • Интегрированные конвейеры обработки запросов от IIS и ASP.NET.

Компоненты

IIS содержит несколько компонентов, которые выполняют важные функции для приложений и ролей веб-сервера в Windows Server® 2008 (IIS 7.0) и Windows Server 2008 R2 (IIS 7.5). Каждый компонент имеет функции, такие как прослушивание запросов к серверу, управление процессами и чтение файлов конфигурации. Эти компоненты включают в себя обработчики протокола, такие как HTTP.sys и службы, такие как World Wide Web Publishing (служба WWW) и службы активации процесса Windows (WAS).

Internet Information Server (IIS) имеет свой собственный ASP.NET Process Engine для обработки запроса ASP.NET. Способ настройки приложения ASP.NET зависит от того, какая версия IIS приложения используется.

Internet Information Server (IIS) включает в себя набор программ для создания и администрирования веб-приложений, поисковых систем, а также поддержку для написания веб-приложений, обеспечивающих доступ к базам данных, таким как SQL Server. IIS позволяет настроить компьютер в качестве веб-сервера и предоставляет функциональные возможности для разработки и развертывания веб-приложений ASP.NET на сервере. Кроме того, возможно установить параметры безопасности для конкретного веб-сайта для конкретных пользователей и компьютера для того, чтобы защитить его от несанкционированного доступа.

По заявлениям разработчиков, IIS повышает доступность веб-сайтов и приложений при одновременном снижении системного администрирования и стоимости развертывания. IIS 7.5 поддерживает HTTP, HTTPS, FTP, FTPS, SMTP и NNTP.

Ключевые особенности

  • Встроенные расширения
    • WebDAV и FTP
    • Фильтрация запросов
    • Модули администрирования
  • Усовершенствования управления
    • Анализатор соответствия рекомендациям
    • Windows PowerShell провайдер и cmdlets
    • Ведение журнала конфигурации и трассировки
  • Улучшения хостинга приложений
    • Управляемые учетные записи служб
    • Hostable веб-ядро
    • Трассировка неудачных запросов для FastCGI


  • Улучшения .NET поддержки для Server Core

Установка

  • Нажмите кнопку Пуск и выберите Панель управления.
  • На панели управления выберите Программы, а затем Включение и отключение компонентов Windows.
  • В диалоговом окне «Компоненты Windows» нажмите Службы IIS, а затем кнопку ОК.

Конфигурирование

Настройка веб-узла по умолчанию: При установке IIS настроен для использования в качестве веб-узла по умолчанию; тем не менее может потребоваться изменить некоторые настройки. Чтобы изменить основные параметры для веб-узла и имитировать действия, которые требуются для настройки Apache в первый раз с помощью файла конфигурации:

  1. Войдите в систему на компьютере веб-сервера с правами администратора.
  2. Нажмите кнопку Пуск, выберите Настройка и щелкните Панель управления.
  3. Дважды щелкните значок Администрирование, а затем дважды щелкните значок Диспетчер служб Интернета.
  4. Щелкните правой кнопкой мыши веб-узел, который необходимо настроить, на левой панели и выберите команду Свойства.
  5. Перейдите на вкладку веб-узел .
  6. В поле Описание введите описание веб-узла.
  7. Введите адрес Internet Protocol (IP) для веб-узла или оставьте значение по умолчанию все (не назначено) .
  8. Измените порт протокола управления передачей (TCP), соответствующим образом.
  9. Перейдите на вкладку Домашний каталог.
  10. Чтобы использовать папку на локальном компьютере, выберите каталог на данном компьютере и нажмите кнопку Обзор, чтобы найти папку, которую требуется использовать.
  11. Чтобы использовать папку, общий ресурс с другого компьютера в сети, выберите параметр Общая папка другого компьютера и затем введите путь или нажмите кнопку Обзор, чтобы выбрать общую папку.
  12. Нажмите кнопку Чтение предоставить доступ на чтение к папке (обязательно).
  13. Нажмите кнопку ОК, чтобы принять свойства веб-сайта.

Создание нового веб-узла:

Чтобы создать новый веб-узел на сервере Apache, необходимо настроить виртуальный узел и настроить отдельные параметры для узла. Если используются службы IIS, можно создать новый веб-узел путем перевода следующих терминов в эквивалентные термины IIS:

Apache термин Термин IIS
Корень документа Каталог домашней страницы веб-узла IIS
Имя_сервера Заголовок узла IIS
Прослушивание IIS IP-адрес и TCP-порт

Чтобы создать новый веб-узел в IIS, выполните следующие действия:

  1. Войдите в систему на компьютере веб-сервера с правами администратора.
  2. Нажмите кнопку Пуск, выберите Настройка и щелкните Панель управления.
  3. Дважды щелкните значок Администрирование, а затем дважды щелкните значок Диспетчер служб Интернета.
  4. Щелкните Действие, выберите пункт Создать и выберите веб-узел.
  5. После запуска мастера создания веб-узла, нажмите кнопку Далее.
  6. Введите описание веб-узла. Это описание используется для идентификации веб-узла в диспетчере служб Интернета только для внутренних целей.
  7. Выберите IP-адрес для веб-узла. Если выбрать все (без значения), веб-узел будет доступен для всех интерфейсов и всех настроенных IP-адресов.
  8. Введите номер порта TCP, чтобы опубликовать на нем сайт.
  9. Введите имя заголовка узла (реальные имя, которое используется для доступа к этому узлу).
  10. Нажмите кнопку Далее.
  11. Введите путь к папке, которая содержит документы веб-узла, или нажмите кнопку Обзор, выберите папку и нажмите кнопку Далее.
  12. Укажите права доступа для веб-узла и нажмите кнопку Далее.
  13. Нажмите кнопку Готово.

Как нити, привязанные к запросам через Http.sys, IIS и ASP.NET

Я сейчас читаю много о Node.js. Существует частое сравнение между серверами с использованием традиционного потока для каждого запроса модели (Apache) и серверами, которые используют цикл событий (Nginx, узел, Торнадо).

Я хотел бы подробно узнать о том , как запрос обрабатывается в ASP.NET — с точки получаем в http.sys вплоть до его обрабатываемый в самом ASP.NET. Я нашел в документации MSDN по http.sys и IIS немного не хватает, но , возможно , мой Google-фу слаб сегодня. До сих пор лучший ресурс я нашел пост в блоге Томаса Марквардт в .

Может кто-нибудь пролить свет на эту тему, или указать мне на любые другие ресурсы?

(Для целей этого вопроса я заинтересован только в IIS7 с типичным интегрированным трубопроводом)

Из моих исследований до сих пор его мое понимание того, что , когда приходит запрос в нем получает положить в очереди запросов в режиме ядра. Согласно этим , это позволяет избежать многих проблем , связанных с переключением контекста , когда есть огромное количество запросов (или процессов или потоков . ), что обеспечивает аналогичные преимущества evented IO. Цитата из статьи:

«Каждая очередь запросов соответствует одному пулу приложений. Пул приложений соответствует одной очереди запросов в пределах HTTP.sys и одного или нескольких рабочих процессов.»

Итак , в соответствии с этим, каждая очередь запросов может иметь более чем один « рабочий процесс ». (Кэш Google) Подробнее о рабочих процессах

Из моего понимания:

  • IIS открывает создает очереди запросов (см http.sys апи ниже)
  • А «Веб-сайт» настроен в IIS соответствует одному рабочего процессу
  • Веб — сайт / рабочий процесс разделяет пул потоков.
  • Поток передается запрос из очереди запросов.

Здесь много полезной информации об архитектуре IIS7 в

Анализ проблем в приложениях с использованием журналов IIS

Продукты и технологии:

Microsoft .NET Framework, Windows Server, IIS

В статье рассматриваются:

  • включение протоколирования в IIS;
  • нахождение идентификационного номера веб-сайта;
  • изучение содержимого файлов журналов.

Пытались ли вы когда-нибудь устранять проблемы в приложении или отлаживать его, не видев его код? Было ли у вас когда-нибудь плохо работающее приложение, и ни браузер, ни это приложение не предоставляло полезного кода ошибки?

Я неоднократно сталкивался с обоими случаями, и было бы неплохо подготовиться к ним как к неизбежности. Методики, описываемые в этой статье, помогут анализировать проблемы в любом приложении или системе, выполняемой в IIS, независимо от платформы, на которой они кодировались. Эти методики помогали мне анализировать приложения и веб-сайты в самых разнообразных ситуациях, особенно на устройствах, отличных от ПК, — этот сценарий становится нормой в наши дни. В одном из последних случаев эти методики помогли мне обнаружить, почему видеоролики не отображались на устройствах Apple, хотя нормально показывались на устройствах с Windows.

Некоторые соображения

Существует много методик для отладки ASP.NET- и других веб-приложений, выполняемых под управлением IIS. Сам браузер зачастую генерирует специфическую ошибку или набор ошибок, которых достаточно для решения проблем.

Ну а если этой информации не достаточно? Вот здесь-то и полезно знание нескольких дополнительных методик. Самая простая из них также является самой быстрой и общеизвестной: выполнение приложения непосредственно на сервере. Иногда серверы не сконфигурированы для такого варианта, но, если вы сможете это сделать, сервер предоставит больше полезной отладочной информации, чем внешний компьютер. Это поведение, очевидно, встроено Microsoft в целях безопасности. Чтобы получить еще больше данных в браузере на сервере, отключите параметр Show friendly HTTP error messages, который вы найдете в Internet Explorer в меню Internet Options | Advanced.

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

Включение протоколирования в IIS


Первый шаг — включить протоколирование Windows на сервере. Это можно сделать несколькими способами. Этапы этих процедур на практике могут варьироваться (иногда значительно) в зависимости от того, с какой версией Windows Server вы имеете дело.

Перечисление этих этапов или глубокое описание преимуществ и недостатков каждого из способов выходит за рамки этой статьи. Здесь я просто укажу: чтобы правильно использовать протоколирование для отладки своих приложений, вы должны включать его до возникновения ошибок. Массу полезной информации вы найдете в двух статьях MSDN по Windows Server 2003 и 2012: «How to configure Web site logging in Windows Server 2003» (bit.ly/cbS3xZ) и «Configure Logging in IIS» (bit.ly/18vvSgT). Если они не отвечают вашим потребностям, есть масса других онлайновых статей по включению протоколирования в IIS для других версий Windows Server.

Определение правильного идентификационного номера

Включив протоколирование, вам нужно найти в IIS идентификационный номер (ID number) анализируемого вами веб-сайта. Это крайне важно, поскольку на серверах обычно размещается более одного веб-сайта, и пытаться найти папку журналов вручную может оказаться устрашающей задачей. (Я как-то пытался сделать это на сервере, выполняющем 45 веб-сайтов, и эта задача оказалась практически невозможной.)

Откройте IIS Manager, чтобы отобразить все размещенные веб-сайты. В этом примере допустим, что я пытаюсь выяснить, почему WebSite2 вдруг перестал работать или работает лишь время от времени.

Как видно на рис. 1, ID для WebSite2 равен 3. Следующий шаг — открыть соответствующую папку log, которая обычно (но не всегда) находится в папке Inetpub. Windows, как правило, создает эту папку в корне сервера (C:), но в моем случае папка Inetpub располагается на диске D:. В руководствах рекомендуют разделять диски с операционной системой и кодом для упрощения их замены на случай аварии.

IIS обычно хранит множество файлов в зависимости от того, как вы сконфигурировали историю сервера или как долго идет протоколирование.

Рис. 1. Определение идентификационного номера веб-сайта

Windows именует все папки протоколирования в виде W3SVC#, где # — это ID конкретного веб-сайта. Поскольку ID отлаживаемого сайта в данном случае равен 3, файлы журналов будут размещаться в папке W3SVC3, как показано на рис. 2.

Рис. 2. Открытие папки с файлами журналов

Просмотр файлов

Открыв нужную папку, вы можете увидеть уйму файлов. IIS обычно хранит множество файлов в зависимости от того, как вы сконфигурировали историю сервера или как долго идет протоколирование. Чтобы найти требуемый файл, лучше всего прокрутить список до конца и открыть последний файл, хотя, если вам известно точное время возникновения ошибки, его можно найти по дате и времени в имени. Так или иначе, откройте файл, используя текстовый редактор вроде Notepad.exe.

По-видимому, в файле будет много данных. На первый взгляд, информация может показаться зашифрованной и бесполезной, но, посмотрев повнимательнее, вы найдете немало жемчужин, скрытых в этих данных. Я рассмотрю некоторые из наиболее полезных элементов данных, записываемых процессом протоколирования.

IIS и Windows пишут индивидуальную строку для каждого HTTP-запроса. Типичная строка выглядит так:

На первый взгляд, информация может показаться зашифрованной и бесполезной, но, посмотрев повнимательнее, вы найдете немало жемчужин, скрытых в этих данных.

Это строка из реального журнала IIS. Данные, показанные здесь, содержатся в одном из «стандартных» форматов. Однако, поскольку этот параметр можно настраивать, нет никаких гарантий, что ваши файлы будут выглядеть точно так же, как мой пример. Поэтому, вместо того чтобы перебирать все данные, я сосредоточусь на элементах, которые представляют наибольший интерес при отладке приложения.

Первый элемент в примере — это дата запроса. Учтите, что это дата на серверной стороне. Поскольку многие веб-приложения выполняются по всему миру на множестве серверов, развернутых в разных часовых поясах, эта дата может ввести в заблуждение. Убедитесь, что дата точно отражает реальное время возникновения ошибки. Многие серверы используют время GMT, но вы должны проверить формат.

Затем вы увидите IP-адрес, по которому было обращение, тип HTTP-операции (GET) и файл, который запрашивался или к которому было обращение. В следующей строке примера код вызывает файл default.asp:

Это ценная информация, так как ошибки могли возникнуть еще на этой стадии процесса. Скажем, вы, возможно, ожидали выполнения в этот момент другого файла.

Следующая часть строки показывает IP-адрес — источник запроса, а также принимающий порт:

Эта информация тоже важна, поскольку необходимо удостовериться, что анализируемый вами запрос действительно исходил из известного источника.

Как видите, указывается и реальный порт. Эта кажущаяся несущественной порция информации жизненно важна при поиске источника проблем. Например, брандмауэр может быть сконфигурирован неправильно. За этими данными идет масса информации, в основном относящаяся к версиям:

Например, вы видите разрядность выполняемого браузера (32- или 64-разрядный), версии CLR (для тех, кто столь глубоко ныряет во вселенную .NET) и версию .NET, установленную на сервере (в данном случае, .NET 4C).

Добираемся до сути

До этого момента я показывал сравнительно очевидные части записи в файле журнала. Самое важное, что вы можете видеть, какой браузер реагирует на HTTP-запрос. Иногда этого достаточно, поскольку разные браузеры могут давать разные результаты. Вот фрагмент строк, иллюстрирующих, как в файле отражаются результаты браузеров Firefox и Chrome:

Понять, какой из нескольких HTTP-запросов следует отладить, может оказаться затруднительным, потому что все они выглядят похоже. И здесь может помочь смена браузера. Добавив запись для другого (и неожиданного) браузера, такого как Safari или Opera, вы можете упростить поиск и последующий анализ нужной записи.

Наконец, взгляните на последние четыре элемента в строке:

Последняя цифра, 15, является временем ответа (в миллисекундах) на HTTP-запрос. Это очень полезный фрагмент информации. Зная, сколько времени потребовалось на обработку запроса, вам будет проще решить, соответствует ли это время «нормальному» для данного фрагмента кода, веб-сервиса или процесса.

Возможно, вы с удивлением обнаружите, что сравнительно простые этапы в процессе требуют неожиданно много времени на обработку.

Возможно, вы с удивлением обнаружите, что сравнительно простые этапы в процессе требуют неожиданно много времени на обработку. Возьмем недавний случай из моей практики. Некое приложение иногда входило в систему, а иногда эта операция заканчивалась неудачей, не создавая перехватываемую в браузере ошибку или вообще не сообщая ни о каких ошибках. Оно просто давало сбой. После изучения показателей времени ответов в журнале разработчики обнаружили следующее свойство в файле web.config:

Значение этого параметра, вроде бы безобидно выставленное в 30 секунд, было просто слишком велико. Как только его уменьшили, приложение стало работать ожидаемым образом.

Теперь (повторяя одну из предыдущих строк) я сосредоточусь на одном из важнейших параметров из рассматриваемого мной набора. Первый элемент — 200 — это собственно HTTP-ответ от IIS:

Такой HTTP-код ответа, 200, свидетельствует об успехе. Зачастую вы будете встречать известный тип ошибки, например 404 (не найдено) или 500 (внутренняя ошибка сервера), и это может дать вам достаточно информации для выявления и устранения причины проблемы. За официальным списком HTTP-кодов состояния обращайтесь по ссылке bit.ly/17sGpwE.

Теперь я рассмотрю еще один случай из практики — именно он подтолкнул меня к написанию этой статьи. У меня был веб-сайт, который отлично работал на ПК, но, как только пользователи обращались к нему со своих устройств iPad, потоковое видео переставало работать. Еще хуже, что не было никакого кода ошибки; функциональность, связанная с видео, просто не работала.

Вот где анализ журналов подтвердил свою ценность. Изучив журналы и удостоверившись, что HTTP-запрос приходил от Safari (чтобы изолировать запрос), я обнаружил, что сервер сообщал об ошибке 404. Сообщение об ошибке сбивало с толку, а сам код казался неправдоподобным, потому что ПК-версия сайта работала нормально.

Хотя в журналах сообщалось о том, что объект не найден, я отлично знал, что нужные файлы на месте. Это подтолкнуло меня к изучению различий в обработке и хранении файлов в iOS и Windows. Проанализировав исходный код, который загружал видео, я обнаружил, что путь к видеофайлам «зашит» в исходный код и что этот путь не существует для устройств iPad под управлением iOS. Это и было причиной ошибки 404.

Здесь важно отметить, что все симптомы указывали на что угодно, но только не на истинную причину. Например, такая проблема обычно решается проверкой наличия неподдерживаемых media-типов (или Multipurpose Internet Mail Extensions [MIME]) в IIS. Однако, если бы проблема заключалась в отсутствующем MIME-типе, код ошибки был бы HTTP 415 (неподдерживаемый media-тип) или аналогичным, а в журналах об этом не сообщалось. Отладка с применением журналов IIS стала решающим фактором в поиске источника проблемы. Я сэкономил массу времени, увидев истинный код ошибки и исследовав причины его появления; если бы я пошел на поводу того, о чем сообщалось, то потратил бы гораздо больше времени. Еще раз подчеркиваю: знание того, как читать журналы, позволяет успешно решить проблему.

Заключение

Файлы журналов могут быть мощным средством в отладке и анализе проблем приложений (даже в «слепых» ситуациях) при условии, что вы знаете, где их искать и что означают те или иные данные в них. Анализ данных в журналах — самый простой метод устранения проблем.

Конечно, такой метод требует опыта и некоторых знаний, но, как только вы освоитесь, вы сможете отлаживать большинство приложений в IIS и устранять многие проблемы.

Эдуардо Санабриа (Eduardo Sanabria) — независимый консультант по сервисам в HP Enterprise Services (Эль-Пасо, Техас). В текущем проекте выступает в роли эксперта по .NET. Имеет более чем 25-летний опыт полных циклов разработки приложений. Специализируется на .NET, приложениях баз данных, обработке данных и веб-разработке. С ним можно связаться по адресу EdSanabria@Yahoo.com.

Выражаю благодарность за рецензирование статьи эксперту Hewlett-Packard Роджеру Хокинсу (Roger Hawkins).

Илон Маск рекомендует:  Что такое код session_get_cookie_params
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL