Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wie wöchentlich Newsletter versenden?
MasterOfCoding
myCSharp.de - Member



Dabei seit:
Beiträge: 131
Herkunft: Österreich

Themenstarter:

Wie wöchentlich Newsletter versenden?

beantworten | zitieren | melden

Hallo!

Weiß irgendjemand, wie man wöchentlich oder monatlich automatisch generierte Newsletter versenden kann mit ASP.NET?
Hierbei ist nicht das Problem, wie ich die Newsletter generiere oder verschicke, sondern wie ich etwas in ASP.NET z:B. wöchentlich ausführe.

Vielen Dank,
Andreas
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,
Du kannst hierfür die Handler der global.asax benutzen, z.B. im Application_Start 'nen Timer starten. Der Thread für den Timer läuft dann im asp.net-workerprozess, und der wird nicht beendet bis der Webserver beendet wird.
Dann ist es aber wichtig, daß mindestens ein Aufruf an die Website erfolgt, nachdem der Webserver neu startet, damit der Handler auch ausgeführt wird.
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Waschbecken
myCSharp.de - Member



Dabei seit:
Beiträge: 799

beantworten | zitieren | melden

ASP.NET ist dafür das völlig falsche Mittel. Benutze einen Dienst oder nen Kommandozeilen-Tool, das du als Task einträgst.
private Nachricht | Beiträge des Benutzers
MasterOfCoding
myCSharp.de - Member



Dabei seit:
Beiträge: 131
Herkunft: Österreich

Themenstarter:

beantworten | zitieren | melden

Vielen Dank!

OK, das verstehe ich.
Das Problem ist somit für mich gelöst.

Vielen Dank,
Andreas
private Nachricht | Beiträge des Benutzers
.Kai
myCSharp.de - Member

Avatar #avatar-1836.gif


Dabei seit:
Beiträge: 1.130

beantworten | zitieren | melden

Zitat
Original von Waschbecken
ASP.NET ist dafür das völlig falsche Mittel. Benutze einen Dienst oder nen Kommandozeilen-Tool, das du als Task einträgst.

Sehe ich ähnlich wie Thomas. Ein Konsolenprogramm, welches per TaskManager gestartet wird, ist die bessere Lösung.
private Nachricht | Beiträge des Benutzers
MasterOfCoding
myCSharp.de - Member



Dabei seit:
Beiträge: 131
Herkunft: Österreich

Themenstarter:

beantworten | zitieren | melden

Ja, mit "das Problem ist gelöst" habe ich gemeint, dass ich das nicht wirklich mit normalen ASP.NET lösen werde, sondern ein externes Programm verwenden werde.

Vielen Dank,
Andreas
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,
ich finde das hängt auch ganz davon ab was man vorhat. Wenn man eine webbasierte Anwendung schreibt, die unter anderem ein Newsletter-Feature anbieten soll, kann man es imho schon verantworten, das den asp-dienst übernehmen zu lassen. Man kann dann z.B. direkt auf die Datenbankklassen der Webanwendung zugreifen, und das ist für den Endbenutzer dann auf jeden Fall auch leichter zu handhaben.
Wenn es nur darum geht, den Newsletter zu versenden, habt Ihr natürlich recht.
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Waschbecken
myCSharp.de - Member



Dabei seit:
Beiträge: 799

beantworten | zitieren | melden

Das Verwenden der bestehenden Datenbankklassen ist eine Frage des Designs, kein Vorteil beim Versand über ASP.NET. Wenn man seine Logik vernünftig trennt, kann man auch aus anderen Anwendungen heraus den Datenlayer der Webanwendung benutzen.
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

Zitat
Original von Waschbecken
Das Verwenden der bestehenden Datenbankklassen ist eine Frage des Designs, kein Vorteil beim Versand über ASP.NET. Wenn man seine Logik vernünftig trennt, kann man auch aus anderen Anwendungen heraus den Datenlayer der Webanwendung benutzen.
Das ist zwiefellos richtig. aber wenn asp.net sowieso am laufen ist, weil meine Anwendung schon in asp.net läuft, braucht man dem Kunden ja nicht noch unbedingt nen zusätzlichen Dienst aufs Auge zu drücken
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Waschbecken
myCSharp.de - Member



Dabei seit:
Beiträge: 799

beantworten | zitieren | melden

Das kannst du drehen wie du willst - die Argumentation wird nicht besser ;-) Wenn du mal 100.000 Newsletter verschickst dauert das je nach Umsetzung gut mal länger als ne Stunde. Den ASP.NET-Prozess nach dieser Stunde möchte ich dann im Taskmanager mal sehen ... und gleichzeitig die Performance der Web-Anwendung beobachten, die wahrscheinlich nen Flatliner produziert.
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

Zitat
Den ASP.NET-Prozess nach dieser Stunde möchte ich dann im Taskmanager mal sehen ... und gleichzeitig die Performance der Web-Anwendung beobachten, die wahrscheinlich nen Flatliner produziert.

Wenn ein Dienst das übernimmt, muss die Arbeit genauso gemacht werden, und kostet wohl die gleiche Systemzeit -> die Performance währen der Erstellung wird ohnehin sinken. Wenn man das geschickt angeht, dürfte es sich imho nicht viel nehmen.
Für mich ist das halt ne Frage wie der Rest dazu aussieht, und kein pauschales Lösung XY ist auf jeden Fall besser.
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Waschbecken
myCSharp.de - Member



Dabei seit:
Beiträge: 799

beantworten | zitieren | melden

Es ist ein Unterschied ob der ASP.NET-Prozess bei 90% hängt oder ein anderer, von diesem völlig unabhängiger. Beim ASP.NET-Prozess ist die Webanwendung tot, ansonsten läuft sie, wenn auch langsamer, weiter.

So einfach. Es macht einfach keinen Sinn sowas automatisiert über ASP.NET zu machen, mal ganz davon der Problematik des "Anstoßens" abgesehen.
private Nachricht | Beiträge des Benutzers
MasterOfCoding
myCSharp.de - Member



Dabei seit:
Beiträge: 131
Herkunft: Österreich

Themenstarter:

beantworten | zitieren | melden

Verstehe.
Dann werde ich wohl auf das Feature des automatischen Newsletters verzichten. Der Benutzer/Admin muss den Newsletter selbst verfassen und abschicken.
Nur schockt mich, dass der Versand von 100.000 Newsletter eine Stunde dauern soll. Und wenn der Admin über ein Webfrontend den Befehl dazu gibt, habe ich das gleiche Problem (= Überlastung) noch einmal.

Da muss ich mir etwas einfallen lassen, bzw. wirklich auf einen externen Dienst ausweichen.

Vielen Dank!
private Nachricht | Beiträge des Benutzers