Ist es möglich, einen eigenständigen C# -Webdienst zu erstellen, der als Exe- oder Windows -Dienst bereitgestellt wird?

StackOverflow https://stackoverflow.com/questions/1013896

Frage

Ist es möglich, einen C# EXE oder einen Windows -Dienst zu erstellen, mit dem Webdienstanforderungen verarbeitet werden können? Offensichtlich müsste eine Art eingebettete, wahrscheinlich begrenzte Webserver Teil des EXE/Service sein. Der EXE/Service müsste sich nicht darauf verlassen, dass IIS installiert wird. Vorzugsweise könnte der eingebettete Webdienst HTTPS/SSL -Typverbindungen verarbeiten.

Das Szenario lautet: Der Kunde möchte einen kleinen Agenten (einen Windows -Service) auf seinen Unternehmensmaschinen installieren. Der Agent hätte zwei primäre Aufgaben: 1) Überwachen Sie das System im Laufe der Zeit und sammeln bestimmte Datenstücke und 2) auf Web -Service -Anfragen reagieren (SOAP -V -PLEST wird weiterhin gefasst) für Datenerfassung oder Systemänderungszwecke. Der Kunde mag die Idee von Web -Service -APIs, damit eine beliebige Anzahl von Kunden (in jeder Sprache) geschrieben werden kann, um die verschiedenen auf den Unternehmensmaschinen betriebenen Agenten zu nutzen. Sie möchten, dass die Installation relativ schmerzlos ist (Installation .NET, einige Baugruppen, einen Dienst, ändern Sie die Windows -Firewall, starten Sie den Dienst), ohne dass IIS installiert und konfiguriert werden muss.

Ich weiß, dass ich das mit Delphi machen kann. Aber der Kunde würde es vorziehen, dies nach Möglichkeit in C# zu erledigen.

Irgendwelche Vorschläge?

War es hilfreich?

Lösung

Ja, es ist möglich, Sie möchten sich vielleicht ansehen WCF und Selbsthosting.

Andere Tipps

Ja, es ist möglich (und ziemlich einfach).

Hier ist ein CodeProject -Artikel zeigt, wie ein grundlegender HTTP -Server in C#erstellt wird. Dies kann leicht in ein eigenständiges Exe oder Dienst gestellt und als Webdienst verwendet werden.

Eine Technologie, die Sie sich vielleicht ansehen möchten, ist WCF. WCF kann ein bisschen schmerzhaft sein, aber es gibt einen großartigen Screencast bei DNRTV von Keith Elder, der zeigt, wie man mit WCF auf eine sehr einfache Weise beginnt.

http://www.dnrtv.com/default.aspx?shownum=135

Sie könnten sich ansehen Httplistener im .NET -Framework.

Ich würde WCF wärmstens empfehlen. Es würde sehr gut in ein Produkt passen, wie Sie beschreiben. Es gibt eine gute Anzahl von Bücher verfügbar.

Sicher, das können Sie tun. Stellen Sie sicher, dass Sie den Ausgangstyp des Projekts in Konsolenanwendung ändern. Fügen Sie dann in Ihrer Hauptfunktion einen String [] -Parameter hinzu. Aus einem Switch, den Sie in der Befehlszeile erhalten, können Sie auf serviceBase.run verzweigen, um als Windows -Dienst oder Zweig zu einem anderen Code auszuführen, um eine Konsolenanwendung auszuführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top