2009-11-21 5 views
1

En java, vous pouvez définir un indicateur "sans tête" sur true pour réconcilier les différences entre un environnement de serveur sans écran et votre environnement de développement de bureau.Définition de la propriété headless dans .net

System.setProperty("java.awt.headless", "true"); 

Donc chaque fois que vous essayez de faire une opération non prise en charge dans un environnement sans tête de la machine virtuelle lance une exception

Quels sont les paramètres ou les drapeaux que je peux modifier pour simuler mon application en cours d'exécution dans une application IIS piscine à la place de la VM .NET locale? Edit: pour clarifier mes intentions, je vais utiliser le code qui appelle System.Windows.Forms.dll, WindowsBase.dll etc et l'OpenGL wrapper OpenGL qui pourrait instancier une fenêtre.

+0

Le * compilateur * se plaint? Sensationnel. –

+0

Je doute que c'est le compilateur qui se plaint - c'est probablement l'exécution ... –

+0

"qui pourrait instancier une fenêtre" Et vous voulez qu'il lance? Êtes-vous sûr de vouloir créer une application "sans tête" faisant référence à WinForms ou WPF? Pouvez-vous partager pourquoi? –

Répondre

3

simulent mon application en cours d'exécution dans un pool d'IIS application au lieu de la machine virtuelle .NET locale?

Eh bien, la machine virtuelle locale ne sera pas miles out (en supposant que vous hébergez dans certains type de serveur web), mais pour être honnête - pourquoi simuler? Hôte dans IIS; c'est bon. Pour vérifier les problèmes subtils du système d'exploitation du serveur, j'exécute un système d'exploitation serveur dans une machine virtuelle et déploie/remote-debug etc. Pour vérifier à l'exécution, vous pouvez vérifier Environment.UserInteractive; la plupart des codes basés sur les services rapporteront faux - où-comme winforms etc retournera vrai.

IMO, c'est rarement un problème, cependant.

1

Si vous souhaitez que votre code ne soit pas compilé si vous instanciez une fenêtre, il vous suffit de ne pas référencer System.Windows.Forms.dll (WinForms) ni WindowsBase.dll (WPF).

+0

+1. Simple, mais probablement très efficace :-) – Joey

Questions connexes