Bonjour,
Je développe actuellement des scripts pour automatiser les différentes tâches qui constituent la création d'un site web sous IIS.
J'ai donc des pages ASP contenant mes scripts VBS, qui correspondent à chaque étape de la création : recherche du service web, recherche d'un emplacement libre, creation du serveur web,....etc
Tout fonctionne plutôt bien...
Mon seul problème c'est que j'ai besoin d'ajouter un filtre ISAPI à un site en particulier.
Mon script permettant l'ajout d'un nouveau filtre, en spécifiant l'emplacement de la DLL, son nom...etc fonctionne, mais sous IIS le statut de mon filtre dans ce site est "Inconnu".
J'ai testé le filtre en modifiant le fichier httpd.ini correspondant au filtre, en faisant des mappages simples d'URL, tout fonctionne nikel, mais le statut du filtre dans IIS reste toujours "Inconnu".
Voici mes 3 fonctions qui permettent la creation, l'initialisation et l'ajout d'un filtre dans IIS :
- Creation :
'String 'ObjetFunction CreateIsapiFilter
(ByVal filterName,
ByRef filtersDir
) OnErrorResumeNext ' ' ...Initialisation de valeur a retourner... ' Set CreateIsapiFilter =
Nothing ' ' ...Creation du filtre dans le repertoire Filters du site... ' Set CreateIsapiFilter = filtersDir.
Create("IIsFilter", filterName
) EndFunction- Initialisation :
'Object 'String 'StringFunction InitFilterSettings
(ByRef filter,
ByVal filterPath,
ByVal filterDesc
) OnErrorResumeNext ' ' ...Initialisation de valeur a retourner... ' InitFilterSettings =
false ' ' ...Definition des propriétés du filtre... ' filter.
FilterPath = filterPath
filter.
FilterDescription = filterDesc
filter.
NotifyOrderHigh =
true If(Err.
Number =
0)Then InitFilterSettings =
true EndIf
EndFunction
Ajout :
'String 'ObjectFunction AddIsapiFilter
(ByVal filterName,
ByRef filtersDir
) OnErrorResumeNext ' ' ...Initialisation de valeur a retourner... ' Dim strLoadOrder
Dim objFilter
AddIsapiFilter =
false Set objFilter = GetObject
(filtersDir.
ADsPath &
"/" & filterName
) If objFilter.
class =
"IIsFilter"Then ' ' ...Recuperation de la liste des filtres... ' strLoadOrder = filtersDir.
FilterLoadOrder ' ' ...Presence de plusieurs filtres ? On les separe par des ","... ' If strLoadOrder <>
""Then strLoadOrder = strLoadOrder &
"," EndIf ' ' ...Ajout du nouveau filtre a la liste... ' strLoadOrder = strLoadOrder & filterName
filtersDir.
FilterLoadOrder = strLoadOrder
If(Err.
Number =
0)Then AddIsapiFilter =
true EndIf EndIf
EndFunction
Si j'ai omis quelque chose, si vous avez une idée d'où le problème pourrait venir...!
Merci d'avance!