• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Kontaktformular mit Desktop-Programm ansprechen

StephanIII

New member
Für mich sind Web-Applikationen Neuland. Mein Chef hat im Laufe der Jahre ein Desktop-Programm in C# geschrieben. Wie es nun mal so ist, ist kein Programm komplett fehlerfrei. Er möchte nun, dass die Fehler die auftreten ihm mehr oder weniger automatisiert mitgeteilt werden. Mein erster Ansatz war ihm die Exceptions einfach per Mail zu schicken. Das funktioniert zwar, aber es ist nicht schön. Mein Chef würde es am liebsten haben, dass sein Kontaktformular auf seiner Webseite mit den Infos gefüllt wird und anschließend müsste der Kunde nur noch absenden drücken.

Wie gesagt ist Web-Entwicklung völliges Neuland für mich bzw. es ist zu lange her, dass ich Webseiten in der Schule gebaut habe. Mit Javascript müsste das doch irgendwie machbar sein. Habt ihr da Ideen?
 
Wo ist denn der Zusammenhang zwischen einer Exception in einem C# Programm und einem Kontaktformular?
 
Mein Chef möchte diese Exception erhalten. Weg 1 wäre diese einfach per Mail ihm zuzuschicken. Weg 2 wäre halt über das Kontaktformular. Ansonsten haben die keinen Zusammenhang.
 
Aber was suchst du dann hier im Javascript Forum? Wenn er von Exceptions eine Mail haben will muss das C# Programm diese Mail schicken. Ich hab den Zusammenhang zu Webtechnologien noch nicht kapiert außer das jemand von irgendwas Mails bekommen möchte.
 
Meinem Chef wäre es aber deutlich lieber, wenn das Kontakt-Formular auf seine Homepage aufgerufen wird. In dem Kontaktformular soll dann automatisch der Text der Exception eingefügt werden.
 
Mit Javscript kannst du nicht Fehler aus einem C# Desktop-Programm abfangen oder abholen.
Dein Problem mußt du schon im Desktop-Programm selber lösen, so wie du ja jetzt schon eine Mail verschickst.
Eine denkbare Variante wäre das Formular vom Webspace zu laden oder ein identisches zu generieren, dieses dann befüllen und absenden (alles mit C#). Dafür mußt du dir genau anschauen, wie das Kontaktformular deines Chefs arbeitet. Wenn da Mechanismen für eine Botabwehr implementiert sind, wird es kompliziert. Zugriff auf den Webspace ist selbstredend notwendig.
Ich sehe auch nicht, das da Javascript irgendwo ins Spiel kommen könnte.
 
Zuletzt bearbeitet:
Eine denkbare Variante wäre das Formular vom Webspace zu laden oder ein identisches zu generieren, dieses dann befüllen und absenden (alles mit C#). Dafür mußt du dir genau anschauen, wie das Kontaktformular deines Chefs arbeitet. Wenn da Mechanismen für eine Botabwehr implementiert sind, wird es kompliziert. Zugriff auf den Webspace ist selbstredend notwendig.
Genau das möchte ich machen. Ich weiß bloß nicht wie das geht.
 
Ich kann aber von C# so viel senden wie ich möchte, wenn die Webseite nicht darauf hört und dort liegt mein Problem. Ich weiß nicht wie ich die Webseite dazu bringe entsprechend zu reagieren, wenn ich den Aufruf starte.
 
Warum willst du denn unbedingt über ein Formular gehen, was sowieso am Ende auch nur eine Mail verschickt? Wäre es nicht einfacher, direkt aus dem C# Programm zu schicken?
 
Das Problem ist jedes Mail-Programm hat andere Parameter. Outlook musst du anders ansprechen wie Thunderbird. Mit mailto hast du das Problem, dass du nur kurze Texte übergeben kannst und Anhänge lassen sich schlecht bis gar nicht anhängen. Wenn man direkt eine Mail versenden möchte, müsste man die Passwörter, SMTP-Adresse einfügen.
 
Du kannst du aus C# sicher andere Programme starten. So kannst du sicher auch dem OS sagen, dass es einen Browser mit einer bestimmten Webseite öffnen soll. An die URL hängst du als GET-Parameter einfach die Informationen zu dem Fehler an und auf eurem Webserver werden die Parameter ausgelesen und das Formular mit den entsprechenden Werten vorbelegt... wobei es dann eigentlich nicht mehr nötig ist, das Formular abzusenden, da der Server die Fehlerinformationen eigentlich schon hat... eventuell könnte der Nutzer dann noch zusätzliche Informationen/Kommentare abgeben.

- - - Aktualisiert - - -

... oder du schickst die Daten gleich komplett per POST an eueren Server.
 
Hi zusammen

Ich bin neu hier im Forum. Meine bisherigen Kenntnisse beschränken sich im wesentlichen auf ObjectPascal(Delphi) und erste Tests mit HTML und CSS. Mein bisher anspruchsvollstes Teilprojekt ausserhalb von Delphi war ein CSS-Flyoutmenue mit 3 Ebenen. Mit Javascript/jQuery hat so quasi eben erst die Einarbeitungsphase begonnen.
Nun aber zum Thema:
Mein Chef hat im Laufe der Jahre ein Desktop-Programm in C# geschrieben. Wie es nun mal so ist, ist kein Programm komplett fehlerfrei. Er möchte nun, dass die Fehler die auftreten ihm mehr oder weniger automatisiert mitgeteilt werden.
Ich verstehe dich mal so, dass der Kunde via Kontaktformular Verbindung mit dem Programm aufnimmt, da über den Request eine Bestellung aufgibt und das Programm im Normalfall die entsprechende Antwortt zurückschickt. Dass aber im Programm eine Exception ausgelöst werden kann. Und die damit erzeugte Fehlermeldung willst du nun an den Browser übermitteln, damit der Kunde sie in ein Formular einfügen und an den Server schicken kann?
Das scheint mir etwas umständlich zu sein, ganz abgesehen davon, dass auf diese Weise SQL-Injektion funktioniert, wenn der Entwickler nicht aufpasst.

Mein Vorschlag: ändere das C#-Programm. Ich gehe mal davon aus, dass die bewusste Exception beim Zusammenstellen und Abschicken der Antwort geworfen wird - zu einem Zeitpunkt, in dem Request, Referer und einige andere Parameter bekannt sind. Das Programm ist also in der Lage, ein Logfile mit der Fehlermeldung, der URL des Kunden etc. (Wer oder was hat welchen Fehler warum ausgelöst?) zu erstellen und dem Chef per TCP/IP dieses Loogfile oder eine Kopie davon und eine Mail auf seinen Computer zuzustellen. Dabei gehe ich mal davon aus, dass bewusstes Programm auf dem Server und nicht auf dem PC deines Chefs läuft.

Dem Kunden würde ich die Fehlermeldung gar nicht übermitteln, sondern ihm per XML oder JSON eine Mitteilung übermitteln, zB: "Ihre Anfrage konnte leider nicht bearbeitet werden. (...)"
Per Javascript erstellst du dann ein Fenster auf dem Client, das diese Nachricht ausgibt. Allenfalls könnte, abhängig davon, welcher Button gedrückt wird, die Logdatei auf dem Server und die Nachricht an deinen Chef erst erstellt werden.

Gruss
Delbor
 
Zuletzt bearbeitet:
Der Kunde soll die Exception nicht erhalten, sondern verschicken. Die Kunden haben ein C#-Programm laufen. Exceptions treten im Programm nun mal auf und diese Exceptions will mein Chef haben. Das Kontaktformular ist ein Kontaktformular wie jedes andere Firma auch haben sollte.
 
Achso, jetzt verstehe ich. Das läuft beim Kunden. Hab ich das früher schon mal übersehen oder hast du das jetzt erst gesagt? Aber dann ist es doch noch einfacher. Dein C# Programm baut einfach eine HTTP(s) Verbindung zum Server auf und schiebt ihm die Meldungen rein.
Mal eine andere Frage: Was sind das eigentlich für Exceptions? Sag mal bitte ein Beispiel.
 
Im ersten Post :)

Mit WebRequest lässt sich bestimmt leicht etwas rüberschieben, aber müsste dann auf dem Server etwas angepasst werden. Es bringt ja nichts ich rufe und keiner hört darauf.^^

Exceptions sind Laufzeitfehler. Beispiel: Du fragst nach dem Alter einer Person. Du erwartest eine Zahl, aber der Benutzer gibt Buchstaben ein. Soweit du dann versuchst diese Buchstaben in einen Int, double, float, etc. reinzuschreiben, kommt es zum Laufzeitfehler und das Programm stürzt dann mit einer entsprechenden Meldung/Exception ab. Je nach Programmierung wird dann diese Meldung ausgegeben oder nicht.
 
Und genau darauf wollte ich hinaus. Wieso ist das Programm so unsauber? Sollte man das nicht mal vorher korrigieren? Oder dient diese Aktion genau dieser Korrektur?
 
Zurück
Oben