23 Stimmen

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

Ist es möglich, eine C#-EXE oder einen Windows-Dienst zu erstellen, der Webdienstanfragen verarbeiten kann? Natürlich müsste eine Art eingebetteter, wahrscheinlich begrenzter Webserver Teil der EXE/des Dienstes sein. Die EXE/der Dienst wäre nicht auf die Installation von IIS angewiesen. Vorzugsweise könnte der eingebettete Webdienst Verbindungen vom Typ HTTPS/SSL verarbeiten.

Das Szenario ist folgendes: Der Kunde möchte einen kleinen Agenten (einen Windows-Dienst) auf seinen Unternehmensrechnern installieren. Der Agent soll zwei Hauptaufgaben haben: 1) das System im Laufe der Zeit zu überwachen und bestimmte Daten zu sammeln und 2) auf Webservice-Anfragen (SOAP -v- REST wird noch ausgehandelt) zu Zwecken der Datenerfassung oder Systemänderung zu reagieren. Dem Kunden gefällt die Idee von Webservice-APIs, so dass eine beliebige Anzahl von Clients (in einer beliebigen Sprache) geschrieben werden kann, um auf die verschiedenen Agenten zuzugreifen, die auf den Unternehmensrechnern laufen. Die Installation soll relativ einfach sein (Installation von .NET, einiger Assemblies, eines Dienstes, Änderung der Windows-Firewall, Start des Dienstes), ohne dass IIS installiert und konfiguriert werden muss.

Ich weiß, dass ich dies mit Delphi tun kann. Aber der Kunde würde es vorziehen, dies in C# zu tun, wenn möglich.

Irgendwelche Vorschläge?

15voto

Paulo Santos Punkte 10940

Ja, das ist möglich. Schauen Sie doch mal unter WCF y Selbst-Hosting .

5voto

Reed Copsey Punkte 536986

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

Hier ist ein CodeProject-Artikel zeigt, wie man einen einfachen HTTP-Server in C# erstellt. Dieser könnte leicht in eine eigenständige EXE oder einen Dienst integriert und als Webdienst verwendet werden.

3voto

Antonio Haley Punkte 4552

Eine Technologie, die Sie sich vielleicht ansehen sollten, ist WCF. Der Einstieg in WCF kann etwas mühsam sein, aber es gibt einen großartigen Screencast von Keith Elder bei DNRTV, der zeigt, wie man mit WCF auf sehr einfache Weise loslegen kann.

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

2voto

Bongo Punkte 2789

Diese Frage ist schon etwas älter, aber da ich vor einiger Zeit etwas Ähnliches brauchte, schien mir diese Frage immer noch relevant zu sein.

Ich habe ein kleines Rest-API mit NancyFx und OWIN geschrieben. OWIN ist eine Standardschnittstelle zwischen .Net-Anwendungen und Webservern. Mit OWIN ist es möglich, eine selbstgehostete WEB-API . Nancy hingegen ist

ein leichtgewichtiges, unkompliziertes Framework zur Erstellung HTTP-basierter Dienste auf .NET ¹

Die Kombination dieser beiden ermöglicht es, einen selbst gehosteten C#-Webdienst zu erstellen. Ich bin mir ziemlich sicher, dass es noch viele weitere Möglichkeiten gibt, so etwas zu erstellen, aber da ich es so verwendet habe, dachte ich, die Informationen könnten für jemanden nützlich sein.

1voto

Grokys Punkte 15823

Sie können sich ansehen HttpListener im .Net-Framework.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X