mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 24.04.2024 13:44 Benutzername: Passwort: Auto-Login

Thema: Verbindung von .NET-Anwendung zu Webserver vom 29.06.2009


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Verbindung von .NET-Anwendung zu Webserver
Autor Nachricht
martinkuen
Threadersteller

Dabei seit: 21.07.2008
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 29.06.2009 09:45
Titel

Verbindung von .NET-Anwendung zu Webserver

Antworten mit Zitat Zum Seitenanfang

Hallo,

ich stehe vor dem Problem, dass wir aus einem .NET-Programm im laufenden Betrieb Daten an einen WEbserver übergeben müssen, die dann dort aufbereitet und vernünftig dargestellt werden sollen.
Die Daten liegen innerhalb der .NET Anwendung als mehrdimensionales Array vor. Kennt da jemand einen Weg die (im Idealfall an einen Apache Server) weiterzuleiten oder die von einem Webserver aus abzugreifen?
Vielleicht läßt sich ein Webserver direkt in die .NET Anwendung integrieren?
Hat da jemand Erfahrung mit?

Herzlichen Dank
martinkuen
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 29.06.2009 09:51
Titel

Antworten mit Zitat Zum Seitenanfang

Mach doch n simplen POST Request an den Apachen, für sowas ist er doch gedacht *zwinker*
  View user's profile Private Nachricht senden
Anzeige
Anzeige
martinkuen
Threadersteller

Dabei seit: 21.07.2008
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 29.06.2009 11:58
Titel

Antworten mit Zitat Zum Seitenanfang

Herzlichen Dank schon mal.
Nur habe ich dann das Problem, dass die .NET-Anwendung und der Zugriff über den Browser ja 2 verschiedene Sachen sind.
Man müsste quasi die Daten die aus der .NET-Anwendung kommen zwischenspeichern und die allen Zugriffen über Browser zur Verfügung stellen.
Kann man denn ein Array im flüchtigen Speicher so ablegen, dass der Webserver darauf zugreifen kann und es für alle Clients verfügbar ist?
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 29.06.2009 12:03
Titel

Antworten mit Zitat Zum Seitenanfang

Ein handelsüblicher HTTP-(Web)-Server *kann* gar nicht auf irgendwelche Daten zugreifen, sondern nur auf einen HTTP-Request warten und eine HTTP-Response liefern. Natürlich kann ein Browser einen HTTP-Request abfeuern. Deine .net-Anwendung kann das aber mindestens genau so gut *zwinker*

http://www.codeproject.com/KB/IP/httpwebrequest_response.aspx

Oder halt mal nach Bindungen zu curl oder so suchen ...


Zuletzt bearbeitet von bacon am Mo 29.06.2009 12:03, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
martinkuen
Threadersteller

Dabei seit: 21.07.2008
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 29.06.2009 12:30
Titel

Antworten mit Zitat Zum Seitenanfang

Ich glaub, ich hab mich vorhin etwas umständlich ausgedrückt. Mein Grundproblem sieht wie folgt aus:

- Ich habe eine .NET Anwendung die im laufenden Betrieb Messdaten sammelt und in einem Array abspeichert.
- Dazu habe ich einen Benutzer, der die aktuellen Daten abrufen will. Dazu sollte der Browser verwendet werden.

Wenn die .NET-Anwendung fertig abgelaufen ist, müssen die Daten nicht mehr verfügbar sein.

Die Schnittstelle zwischen .NET Anwendung und Browser wäre der Webserver.

Es muss also entweder eine Kommunikation zwischen von Browser zu .NET-Anwendung erfolgen, die sinngemäß sagt "hallo hier ist jemand der die aktuellen Daten haben will, schick die mal" oder die .NET-Anwendung muss die Daten regelmäßig an den Server schicken und der sie dann über den Browser jedem der darauf zugreift aufgearbeitet zur Verfügung stellen.
Für letzteres müssten die Daten ja irgendwo zwischengespeichert werden, sodass der Webserver sie (z.b. via PHP) wieder verwenden kann, oder?

Leider haben wir nicht wirklich Platz für eine Datenbank und wollen auch den ständigen Schreibzugriff außerhalb des flüchtigen Speichers vermeiden wenn irgendwie möglich.

Vielleicht verstehe ich auch das mit dem WebRequest falsch. Ich habe das so verstanden, dass die .NET-Anwendung etwas an den Webserver schickt, der mit den Daten (z.b. über PHP) arbeitet indem er sie z.B. in einer Datenbank speichert. Davon bekommt dann aber doch der User der über Browser auf den Webserver zugreift nichts mit oder?
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 29.06.2009 13:59
Titel

Antworten mit Zitat Zum Seitenanfang

Da hast du recht. Du hast aber sowieso keinerlei Möglichkeit, dem Benutzer zu sagen "Hier, schau mal. Es sind neue Daten angekommen, aktualisiere dich mal". Dafür sind Webbrowser (wegen der Beschränkung auf das HTTP-Protokoll) nicht geschaffen, da sie eben immer nach dem Request-Response Schema arbeiten.

Du stehst sozusagen vor 2 Baustellen:

1.) Muss der Webserver nach einer Benutzeranfrage die Daten von der .NET Anwendung anfordern.
2.) Muss der Client (Browser) ständig aktualisiert werden, solange die Verbindung bestehen bleibt.

Also:

1.) .NET <------------ fragt ---------------- Apache <------------ fragt ---------- Browser(Client)
2.) .NET -------------- antwortet ---------> Apache ------------antwortet ---------> Browser(Client)

Das Konzept ist in sofern doof, weil in dem Moment, wo der Apache Webserver selbst zum Client wird, indem er eine Anfrage an die .NET Anwendung stellt, genau diese Anwendung ebenso einen Server implementieren muss.

Gleichzeitig hast du wie gesagt noch den Punkt 2 zu berücksichtigen, nämlich wie halte ich meinen Webbrowser aktuell?

Wenn .NET und Apache auf der gleichen Maschine installiert sind, ist das ganze eventuell bereits mit einem Systemaufruf erledigt. Ansonsten genau wie du es beschreibst, du machst mittels einer wie auch immer gearteten Scriptsprache auf dem Apachen einen Request auf die .NET Anwendung, die auch einen Server implementiert.

Den .NET-"Server" implementierst du mit Bordmitteln, einfach bei Programmstart einen HTTP-Server in einem neuen Thread aufmachen.

Ich halte das ganze aber für Krude. Wäre es nicht einfacher, die .NET direkt als Server zu implementieren? Dann schreibst du ebenfalls in .NET eine Clientsoftware mit einer kleine GUI, die eine persistente Verbindung (am einfachsten via Socket) zur entfernten Server-.NET Anwendung aufhält. Fertig, dann brauchste auch keinen Apachen dazwischen.

Achso, diesen .NET Client könntest du natürlich genausogut in Flash implementieren, dann läuft das Ding auch im Browser. Oder via Java, das kann auch im Browser laufen.

Mir ist noch was eingefallen, womit du dir das Leben einfacher machen kannst. Vielleicht denkst du darüber nach, der .NET Anwendung eine WSDL aufzupappen. Damit hättest du bereits eine Menge standardisiert und würdest verhindern, dass die Kopplung zwischen Selbstzusammengedengeltem Client und .NET-Anwendung zu stark ist.


Zuletzt bearbeitet von bacon am Mo 29.06.2009 14:06, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
martinkuen
Threadersteller

Dabei seit: 21.07.2008
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 29.06.2009 16:07
Titel

Antworten mit Zitat Zum Seitenanfang

Ganz herzlichen Dank schon mal.
Das Problem an der Sache ist, dass es bisher mit einer Client-Software gelöst wurde, wir nun aber von der Installation auf jedem Arbeitsplatz weg wollen.
Wie es aussieht bleibt doch nur der Weg über eine Datenbank.
  View user's profile Private Nachricht senden
 
Ähnliche Themen Webserver in UK?
TTS auf Webserver, Text->MP3
Grafiken Webserver Thunderbird
index.php - direktaufrurf durch webserver?
Schriftarten vom Webserver verwenden nur mit OS2 möglich?
Bräucht schnell Downloadlink Webserver
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.