Heureusement ColdFusion 8 et 9 peuvent instancier les composants .NET, cela signifie que vous pouvez accéder au .NET code managé de IIS API d'administration:
Using Microsoft .NET Assemblies
navires IIS7 avec deux .NET gérés API de gestion -code de:
Microsoft.Web.Administration
Microsoft.Web.Management
Celles-ci se trouvent dans: c:\windows\system32\inetsrv
. En utilisant cette fonctionnalité, vous devriez pouvoir utiliser ces API via ColdFusion pour créer des sites Web et gérer les fonctionnalités IIS.
Si vous rencontrez des problèmes lors de l'appel direct de ces API (c'est-à-dire que certaines données ne sont pas renvoyées correctement à ColdFusion), vous pouvez toujours renvoyer les appels vers ces API avec votre propre code .NET.
Pour plus d'informations sur la création et la gestion de sites Web en utilisant les liens suivants de l'API ci-dessus font référence:
IIS 7 Configuration Reference
Powerful Administration Tools
How to Use Microsoft.Web.Administration
Managed-Code API Reference (IIS 7)
Il convient également de noter que le compte Windows sous lequel le site s'exécute doit être membre du groupe Administrateurs pour gérer IIS via ces API.
S'il s'agissait d'un site public, je diviserais l'application en deux. Votre site public ColdFusion (fonctionnant sous un compte à privilèges réduits) collecte des informations sur le site à créer. Publiez ces données en tant que tâche dans une file d'attente (aussi simple qu'une base de données) pouvant être lue par une tâche planifiée ou par un service Windows (exécutant en tant qu'utilisateur hautement privilégié) qui extrait périodiquement ces tâches de la file d'attente (disons une fois toutes les 15 ou 30 secondes).
Ceci est connu comme 'sandboxing' et signifie que si votre site ColdFusion est piraté alors il ne fonctionne pas sous des droits élevés et ne peut pas faire beaucoup de dégâts. Toutes les tâches hautement privilégiées sont en sandbox dans un processus qui ne fait pas surface via le web.
Merci beaucoup. Je connaissais un peu les parties, mais vous m'avez vraiment aidé à comprendre comment les assembler. Et merci pour les conseils de sandboxing. Sinon, je l'aurais probablement mal fait. –