2011-07-05 4 views
11

Je suis en train d'écrire un service portable/démon à l'aide de .NET 3.5, mon service Windows est en cours d'exécution, mais je me demandais sur le port mono ...service .NET pour Linux Daemon

Mono-service est ce que je suis Je cherche si je comprends bien. Comment cela fonctionne exactement? Je suppose que j'ai besoin de code mono compatible tout au long de mon service, non? Par exemple, j'utilise SQLite. Est-il correct que pour utiliser ceci en mono, je devrais refactoriser mon code pour utiliser des espaces de noms mono, tels que Mono.Data.SQLite? Puis-je toujours utiliser Settings.settings?

De plus, j'ai lu que les démons n'implémentent pas les méthodes onStart/Stop, ai-je donc besoin de changer mon code pour fonctionner sous mono/linux? C'est-à-dire que c'est correct d'avoir ces méthodes dans mon code, et d'exécuter ServiceBase.Run()? Est-ce que Mono-service les prend en charge?

Répondre

11

Vous devez créer vos programmes depuis le début pour une utilisation avec Windows et Linux.

Vous avez besoin de Visual Studio avec Mono Tools ou de l'IDE MonoDevelop gratuit pour créer une application mono. MonoDevelop peut importer votre projet Visual Studio. Cet EDI vous aide à obtenir les bons espaces de noms. Utilisez Mono-Service pour exécuter votre assembly en tant que démon.

Les démons Linux utilisent des signaux pour communiquer avec le système. S'il vous plaît lire the documentation.

Nous avions déjà une question similaire, alors please read this pour voir, comment traiter les signaux Unix.

+0

Bravo, très instructif. Pourriez-vous me dire si communiquer avec une interface graphique via WCF fonctionnera en mono-service? L'une des réponses à cette question suggère que l'IPC n'est pas possible en mono-service, est-ce toujours le cas? Aussi, si vous connaissez des ressources pour apprendre à écrire un script d'initialisation qui serait génial, je n'ai aucune idée par où commencer avec eux, les exemples google n'étaient pas si verbeux. – marked