Навигация:  Traffic Inspector SDK > WWW сервер >

ASP.NET

Previous pageReturn to chapter overviewNext page

 

Для хостинга ASP.NET приложений используется .NET Framework версии 2.0. Поддержка компонентов более старших версий не тестировалась.

 

Для выполнения ASP.NET приложений в Traffic Inspector предусмотрен отдельный процесс TIASPNETHostServer.exe. Он запускает  приложения .NET Framework и передает им для обработки HTTP запросы с веб сервера.

 

Каждое ASP.NET приложение имеет свой корневой раздел. Этот раздел описывается в списке разделов WWW сервера и для него включается опция Конфигурировать как ASP.NET сайт. Сразу после этого, спустя 1-2 секунды, сервер запустит хостинг этого приложения. Если это произошло успешно, в консоли в списке разделов для колонки ASP.NET появится имя приложения, иначе будет выведено сообщение об ошибке.

 

Конфигурацию приложения определяют два файла, размещаемых в его корне - web.config и global.asax. Первый файл обязателен, второй опционален.

 

Иерархия приложений.

 

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

 

Если переопределяется физический путь, то никакой код там размещать нельзя.
Конфигурировать отдельное приложение внутри другого нельзя.
Вкладывать одно приложение в другое нельзя.

 

Загрузка и запуск ASP.NET приложения будет произведена только по первому запросу. Если приложение некомпилированное, в исходных текстах, то автоматически будет произведена его компиляция.

 

Отладка ASP.NET приложений.

 

Для отладки приложения, написанного в Visual Studio, используйте операцию Attach to process из меню отладки. Имя процесса - TIASPNETHostServer.exe. Для выхода из отладки используйте Detach. Если по какой-то причине прервете процесс TIASPNETHostServer.exe, то службу Traffic Inspector придется перезапустить.

 

Данные проекта ASP.NET можно менять динамически, не останавливая службу Traffic Inspector. После изменения файлов кода приложения хостинг ASP.NET увидит эти изменения, перезагрузит приложение, при этом браузеру будет возвращена ошибка 503. Запрос после этого следует повторить. Если хостинг не применил изменения, то приложение раздела можно перезагрузить с консоли программы.

 

Особенности реализации ASP.NET.

 

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

 

Все приложения запускаются в одном Windows процессе. Фатальный сбой одного приложения при использовании незащищенного кода может привести к нарушению работы всех приложений. Это аналогично наличию одного Application Pool в IIS. Механизмов отслеживания "жизнеспособности" хост-процесса в Traffic Inspector нет.
Аутентификация и авторизация производится средствами веб сервера. Для того, что-бы данные авторизации были доступны в приложении, в нем требуется подключение дополнительного модуля TIAspNet - см. ниже.
Для сессий реализован собственный механизм. Использование сессий ASP.NET не рекомендуется.

 

Особенности конфигурации web.config.

 

Для интеграции с Traffic Inspector в файле web.config надо описать некоторые модули, а также там есть другие важные настройки.

 

Ниже приводится пример фрагмента этого файла -

 

<configuration>

 <system.web>

         <httpModules>

                 <add name="TIIdentityModule" type="TrafInsp.TIIdentityModule"/>

         </httpModules>

         <compilation>

                 <assemblies>

                         <add assembly="TIAspNet, Version=1.0.0.0, Culture=neutral,  PublicKeyToken=B0DFFE2005488D0A"/>

                         <add assembly="Interop.TrafInsp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=B0DFFE2005488D0A"/></assemblies>

         </compilation>

         <authentication mode="None"/>

         <authorization>

                 <allow roles="Администраторы"/>

                 <deny users="?"/>

         </authorization>

         <anonymousIdentification enabled="false"/>

         <sessionState mode="InProc"/>

 </system.web>

</configuration>

 

Подключение сборки TIAspNet для приложения обеспечивает ему доступ к API. Этот модуль также содержит класс TIIdentityModule, задача которого трансляция данных авторизации различным классам ASP.NET, использующим данные авторизации, например, для разграничения прав. См. пример ниже.

 

Сборка Interop.TrafInsp содержит описание COM API Traffic Inspector.

 

Обе этих сборки находятся в GAC, они туда помещаются при установке Traffic Inspector.

 

Элемент <sessionState mode="InProc"/>  опционален. По умолчанию это включено . Не следует делать mode="off", это отключит важный внутренний функционал ASP.NET и нарушит полноценное использование сессий для этого приложения. В этом элементе конфигурации можно переопределить таймаут сессий.

 

В этом примере приведено использование авторизации для разграничения прав средствами ASP.NET.

 

Строчка <anonymousIdentification enabled="false"/> запрещает анонимный доступ, доступ разрешен только для членов группы Администраторы. Отметим, что именно это поддерживается подключением класса TIIdentityModule.

 

В файл конфигурации также можно добавить описание приложения -

 

 <appSettings>

   <add key="AppInfo" value="Мое приложение"/>

 </appSettings>

 

При загрузке приложения это имя будет отображено в списке разделов консоли.

 

Программное окружение ASP.NET приложения.

 

Приложению доступны многие переменные окружения через Request.ServerVariables. Доступны как стандартные переменные, так и некоторые другие. Вот список стандартных, выданных тестовой страничкой по SSL запросу -

 

Name

Value

ALL_HTTP

HTTP_CONNECTION:Keep-Alive HTTP_ACCEPT:image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */* HTTP_ACCEPT_ENCODING:gzip, deflate HTTP_ACCEPT_LANGUAGE:ru HTTP_AUTHORIZATION:NTLM TlRMTVNTU.....  HTTP_COOKIE:.ASPXANONYMOUS=4x4yqUWMxwEkAAAANjEzNGZlOWYtZjQzMy00ZGZjLThjODktMDYwYTMwMjNkOWU3c-MVuJJF2nNts_ff8luN-fn6qa81 HTTP_HOST:10.1.1.251 HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 3.0.04506.30) HTTP_UA_CPU:x86

ALL_RAW

Connection: Keep-Alive Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */* Accept-Encoding: gzip, deflate Accept-Language: ru Authorization: NTLM TlRMTVN... Cookie: .ASPXANONYMOUS=4x4yqUWMxwEkAAAANjEzNGZlOWYtZjQzMy00ZGZjLThjODktMDYwYTMwMjNkOWU3c-MVuJJF2nNts_ff8luN-fn6qa81 Host: 10.1.1.251 User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 3.0.04506.30) UA-CPU: x86

APPL_MD_PATH


APPL_PHYSICAL_PATH

c:\Program Files\TrafInsp\Root\TestASPNET

AUTH_TYPE

Admin_TIUser

AUTH_USER

domain\test

AUTH_PASSWORD


LOGON_USER


REMOTE_USER

domain\test

CERT_COOKIE


CERT_FLAGS


CERT_ISSUER


CERT_KEYSIZE


CERT_SECRETKEYSIZE


CERT_SERIALNUMBER


CERT_SERVER_ISSUER

DC=ru, CN=TEST

CERT_SERVER_SUBJECT

CN=SERVER

CERT_SUBJECT


CONTENT_LENGTH

0

CONTENT_TYPE


HTTPS

1

HTTPS_KEYSIZE

128

HTTPS_SECRETKEYSIZE

1024

HTTPS_SERVER_ISSUER

DC=ru, CN=CA

HTTPS_SERVER_SUBJECT

CN=SERVER

PATH_INFO

/webstat/test.aspx

PATH_TRANSLATED

c:\Program Files\TrafInsp\Root\TestASPNET\test.aspx

QUERY_STRING

/TestASPNET/test.aspx

REMOTE_ADDR

10.0.0.11

REMOTE_HOST

server.local

REMOTE_PORT

1856

REQUEST_METHOD

GET

SCRIPT_NAME

/TestASPNET/test.aspx

SERVER_NAME

server

SERVER_PORT

443

SERVER_PORT_SECURE

1

SERVER_PROTOCOL

HTTP/1.1

SERVER_SOFTWARE

TI-ASP.NET/1.0.0.0

URL

/TestASPNET/test.aspx

HTTP_CONNECTION

Keep-Alive

HTTP_ACCEPT

image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */*

HTTP_ACCEPT_ENCODING

gzip, deflate

HTTP_ACCEPT_LANGUAGE

ru

HTTP_AUTHORIZATION

NTLM TlRMTV....................

HTTP_COOKIE

.ASPXANONYMOUS=4x4yqUWMxw....

HTTP_HOST

10.0.0.11

HTTP_USER_AGENT

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 3.0.04506.30)

HTTP_UA_CPU

x86

 

Через модуль TIAspNet приложению доступно следующее -

 

Доступ к API администрирования Traffic Inspector. Доступно в любом контексте, вызов TrafInsp.TIIdentity.Current.TI возвратит ссылку на интерфейс ITrafInspAdmin с соответствующей авторизацией. Конечно, приложение может само запросить этот интерфейс через COM, однако в этом случае приложению придется произвести авторизацию  отдельно.
Запись и чтение данных из сессии. Могут сохраняться любые данные, поддерживающие сериализацию. Доступно в любом контексте через класс Session по ссылке TIAspNet.Session.Current.
Хранение данных в профилях. Могут сохраняться любые данные, поддерживающие сериализацию.

 

В документе приведен экспорт публичного интерфейса модуля TIAspNet.

 

 

 

 


Текущая страница справки: http://help.smart-soft.ru/doc20/index.html?sdk_asp_net.htm

Сайт разработчиков Traffic Inspector