2010-10-04 8 views
7

En utilisant Coldfusion 8/9, comment procéder pour gérer IIS7. Par exemple:Puis-je gérer par programme (ajouter/modifier/supprimer) les sites IIS 7 de Coldfusion?

Je construis un générateur de site Web, quand quelqu'un remplit un formulaire, un site Web sera généré. Une étape de ce processus consistera à créer un site IIS avec des en-têtes/liaisons IP spécifiques. Une autre étape peut être de permettre à l'utilisateur de télécharger un certificat SSL. Ce n'est peut-être pas possible, je ne suis pas sûr. Mais je sais qu'il devrait y avoir un moyen d'interagir avec IIS7.

Répondre

9

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.

+0

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. –

-2

Je ne pense pas que ce soit une manière bénéfique pour le faire. Ça ne marchera pas.

+2

S'il vous plaît développer ce que vous entendez par là? Voulez-vous dire que l'une des réponses est fausse ou voulez-vous dire que ce que le PO essaie de faire est incorrect? Dans les deux cas, veuillez laisser un commentaire à moins que vous ne puissiez fournir plus de détails sur ce que vous n'êtes pas d'accord et sur la façon dont vous aborderiez le problème. Conduire par des réponses comme celle-ci n'aident pas du tout. Aussi quiconque a upvoted cette réponse, s'il vous plaît allez lire la FAQ. – Kev

+0

Cette réponse est tellement mauvais que vous devriez juste le faire supprimer. Une couleur impressionnante. – stolsvik