Добрый день.
Мне нужно зарегистрировать в IIS для определённой виртуальной директории обработчик.
Обычно можно в диалоговом окне Application Configuration добавить Extension (Application Mappings)
для обработчика, а как это можно сделать программно?
Спасибо.
Здравствуйте, 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>
Здравствуйте, 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
Привет народ. Спасибо что откликнулись. Я разобрался.
Мне нужно было создать директорию и для неё зарегистрировать обработчики.
Вот моё решение, может и не совсем правильное.
Вот результат:
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();
}