VBscript et IIS avec ADSI : Ajout d'un filtre ISAPI à un site
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 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
'String 'Objet
Function CreateIsapiFilter(ByVal filterName, ByRef filtersDir)
On Error Resume Next
'
' ...Initialisation de valeur a retourner...
'
Set CreateIsapiFilter = Nothing
'
' ...Creation du filtre dans le repertoire Filters du site...
'
Set CreateIsapiFilter = filtersDir.Create("IIsFilter", filterName)
End Function |
Initialisation :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
'Object 'String 'String
Function InitFilterSettings(ByRef filter, ByVal filterPath, ByVal filterDesc)
On Error Resume Next
'
' ...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
End If
End Function |
Ajout :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| 'String 'Object
Function AddIsapiFilter(ByVal filterName, ByRef filtersDir)
On Error Resume Next
'
' ...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 & ","
End If
'
' ...Ajout du nouveau filtre a la liste...
'
strLoadOrder = strLoadOrder & filterName
filtersDir.FilterLoadOrder = strLoadOrder
If (Err.Number = 0) Then
AddIsapiFilter = true
End If
End If
End Function |
Si j'ai omis quelque chose, si vous avez une idée d'où le problème pourrait venir...!
Merci d'avance!