Nach dem Upgrade von MultiSendcon von einer älteren Version (z. B. einer Version aus dem Jahr 2021) auf die aktuelle Version startet der Dienst nicht mehr. In der Datei internals.log erscheint ein Eintrag wie dieser:
Unhandled Exception:
Die Datei oder Assembly "ChilkatDotNet47.dll" oder eine Abhängigkeit davon
wurde nicht gefunden. Das angegebene Modul wurde nicht gefunden.
bei MultiSendconService.MSCService.UnlockChilkat()
bei MultiSendconService.Program.Main()
Ursache
Entscheidend ist der Zusatz „oder eine Abhängigkeit davon“. Die Datei ChilkatDotNet47.dll selbst ist im MultiSendcon-Programmordner vorhanden — es fehlt eine Abhängigkeit dieser Datei. Aktuelle MultiSendcon-Versionen verwenden eine neuere Chilkat-Komponente, die gegen das Microsoft Visual C++ 2015–2022 Redistributable (x64) kompiliert ist. Ältere Versionen nutzten eine ältere Chilkat-Version, die eine bereits auf dem Server vorhandene, ältere Laufzeitumgebung benötigte. Nach dem Upgrade wird die neuere Laufzeitumgebung benötigt, ist aber noch nicht installiert — der Dienst kann die Chilkat-Bibliothek daher nicht laden und beendet sich wenige Sekunden nach dem Start.
Lösung
- Laden Sie das aktuelle Microsoft Visual C++ Redistributable (x64) direkt von Microsoft herunter. Auf der Microsoft-Downloadseite ist dies der oberste Eintrag, „Latest supported v14 (for Visual Studio 2017–2022)“ → Latest supported Redistributable version. Wählen Sie die X64-Variante (
vc_redist.x64.exe) — nicht x86 oder ARM64. - Führen Sie
vc_redist.x64.exeaus und schließen Sie die Installation ab. - Starten Sie den MultiSendcon-Dienst erneut, entweder über die Windows-Dienste-Verwaltung oder per Eingabeaufforderung:
sc start MultiSendconService
Eine Neuinstallation von MultiSendcon ist nicht erforderlich. Sobald die Laufzeitumgebung vorhanden ist, wird die Chilkat-Komponente geladen und der Dienst startet normal. Den Erfolg erkennen Sie in der internals.log — dort sollte statt der Ausnahme die Zeile „Waiting for SMTP connections on …, IP port 2500“ erscheinen.
So prüfen Sie, ob die Laufzeitumgebung die Ursache war: Öffnen Sie auf dem betroffenen Server eine Eingabeaufforderung und führen Sie where vcruntime140_1.dll aus. Wird die Datei als nicht gefunden gemeldet, fehlte tatsächlich die Visual-C++-Laufzeitumgebung — ältere Redistributables (2013 und früher) enthalten diese von der aktuellen Chilkat-Komponente benötigte Datei nicht.
Zur Einrichtung des Exchange-Sendekonnektors, der E-Mails an MultiSendcon auf Port 2500 weiterleitet, siehe Sendekonnektoren manuell in Exchange erstellen.