J'ai une interface, appelons-le Le meilleur que j'ai proposé est d'utiliser un symbole compilateur, quelque chose comme: p> le Le problème est que Compiler les symboles sont définis par la construction, que je ne contrôle pas et que je veux être certain. N'y a-t-il pas une manière automagifique de vérifier la présence de Visual Studio? Ou au moins pour vérifier Cassini plutôt que IIS? P> P> iLocatelogfile code>, avec une implémentation standard pour les serveurs Dev / Beta / Professeur, et celui qui ne fonctionne que dans l'environnement de développement local. Je n'arrive pas à penser à un bon moyen propre de décider (de préférence au moment de la compilation, mais le temps d'exécution irait bien) si je cours localement ou sur un serveur. Il s'agit d'une application WCF hébergée sur IIS, si cela importe.
3 Réponses :
Deux façons que j'ai fait ceci 1 Vous pouvez vérifier le nom du processus ou mettre à jour votre fichier de configuration avec un paramètre personnalisé p> Que vous mettez à jour spécifiquement pour chaque environnement et avez-vous une requête d'application pour P> Je ne suis pas sûr de savoir s'il existe un moyen de le déterminer au moment de la compilation, en plus de disposer d'une configuration de construction spéciale pour chaque environnement et Mettre un pragma code personnalisé> pour chacune de ces constructions. Personnellement, je pense que ce n'est pas aussi élégant, mais cela pourrait également fonctionner. p> p>
Merci, je pense que la première option est exactement ce que je recherche - bien que mon nom de processus semble être "webdev.webebserver40" plutôt que "iisiexpress".
Cela a du sens si vous utilisez la construction du serveur de développement. Vous voudrez peut-être penser à passer à IIS Express. J'ai trouvé que c'était bien plus robuste et construit à VS 2012/2010 SP1.
Voici le code que j'ai utilisé
If Debugger.IsAttached Then ' Since there is a debugger attached, ' assume we are running from the IDE Else ' Assume we aren't running from the IDE End If
J'ai trouvé cela ici et ça a fonctionné pour moi- Déterminer si ASP.NET Application fonctionne localement < Pré> xxx pré> p>
J'ai vu cela résolu avant de vérifier la variable de nom de serveur dans une déclaration si d'autre.
Toute raison de ne pas utiliser de fichiers .config pour configurer la journalisation? (probablement que vous avez déjà différent .config pour chaque environnement, il peut donc être trivial pour ajouter une journalisation aussi).
@ Randomus1R C'est une bonne suggestion, mais je ne peux pas utiliser
system.web.httpcontext code> car mon service WCF n'utilise pas la compatibilité ASP.NET ...
@Alexeilevenkov J'ai une raison, mais peut-être pas un cogent - nous courons localement à partir du même .config comme sur le serveur de dev.