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 :
Initialisation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Ajout :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Si j'ai omis quelque chose, si vous avez une idée d'où le problème pourrait venir...!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Merci d'avance!
Partager