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 : 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
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
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 : 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
Si j'ai omis quelque chose, si vous avez une idée d'où le problème pourrait venir...!

Merci d'avance!