Как зарегистрить своё расширение в IIS?
От: Juric  
Дата: 23.12.05 17:31
Оценка:
Добрый день.

Мне нужно зарегистрировать в IIS для определённой виртуальной директории обработчик.
Обычно можно в диалоговом окне Application Configuration добавить Extension (Application Mappings)
для обработчика, а как это можно сделать программно?
Спасибо.
Re: Как зарегистрить своё расширение в IIS?
От: brauncomm  
Дата: 28.12.05 08:51
Оценка: -1 :)
Здравствуйте, Juric, Вы писали:

J>Добрый день.


J>Мне нужно зарегистрировать в IIS для определённой виртуальной директории обработчик.

J>Обычно можно в диалоговом окне Application Configuration добавить Extension (Application Mappings)
J>для обработчика, а как это можно сделать программно?
J>Спасибо.

в web.config для твоей virtual Directory в секцию system.web:


           <httpHandlers>
            <add verb="GET" 
                path=".myExt" 
                type="(class), (assembly)" />
                
        </httpHandlers>
Re: Как зарегистрить своё расширение в IIS?
От: Sinclair Россия https://github.com/evilguest/
Дата: 29.12.05 06:04
Оценка:
Здравствуйте, Juric, Вы писали:

J>Добрый день.


J>Мне нужно зарегистрировать в IIS для определённой виртуальной директории обработчик.

J>Обычно можно в диалоговом окне Application Configuration добавить Extension (Application Mappings)
J>для обработчика, а как это можно сделать программно?
J>Спасибо.
См. в MSDN. Там с каждой версией IIS свои глюки.
Предложенный тебе способ назначения хэндлера через Web.config сработает только для тех расширений, для которых уже назначена обработка через ASP.NET. Поэтому ни для каких .myext ничего интересного не произойдет. Зато можно зарегистрировать свой хэндлер для одного из уже зарезервированных, но малоиспользуемых расширений: .ashx, .axd.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Как зарегистрить своё расширение в IIS?
От: brauncomm  
Дата: 29.12.05 09:49
Оценка:
Здравствуйте, Sinclair, Вы писали:

да, не дочитал я до конца вопрос...
Re: Как зарегистрить своё расширение в IIS?
От: Juric  
Дата: 29.12.05 14:25
Оценка: 6 (1)
Привет народ. Спасибо что откликнулись. Я разобрался.
Мне нужно было создать директорию и для неё зарегистрировать обработчики.
Вот моё решение, может и не совсем правильное.
Вот результат:

public void CreateVDir(ref string VDirName,ref string VDirPath)
{
string[] mapp=new string[2];
mapp[0]=".ifrm,C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\aspnet_isapi.dll,1,OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,DEBUG";
mapp[1]=".chart,C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\aspnet_isapi.dll,1,OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,DEBUG";
//APPL_MD_PATH
DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC/1/ROOT");

//For append new directory

DirectoryEntry vd = root.Children.Add(VDirName, "IIsWebVirtualDir");

vd.Properties["Path"][0]=VDirPath;
vd.Properties["AuthAnonymous"][0]="TRUE";
vd.Properties["AuthBasic"][0]="FALSE";
vd.Properties["AuthNTLM"][0]="FALSE";
vd.Properties["DefaultDoc"][0]="default.aspx";
vd.Properties["AccessRead"][0]="TRUE";
vd.Properties["AccessExecute"][0]="FALSE";
vd.Properties["AccessWrite"][0]="FALSE";
vd.Properties["AccessScript"][0]="TRUE";
vd.Properties["EnableDefaultDoc"][0]="TRUE";
vd.Properties["EnableDirBrowsing"][0]="FALSE";
vd.Invoke("AppCreate",true);
vd.CommitChanges();

PropertyValueCollection newval=vd.Properties["ScriptMaps"];
newval.AddRange(mapp);

vd.CommitChanges();
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.