Fragensteller
WS2012 R2 Terminal Server - Software via Netzlaufwerk (Programm Abstürze)

Allgemeine Diskussion
-
Hallo zusammen
Seit immer mehr unserer Kunden auf Windows Server 2012 R2 Terminalserver wechseln, häufen sich Probleme welche unsere Software abstürzen lassen.
Ich dachte ich teile das nun hier mal - vielleicht hat jemand eine Idee oder ein ähnliches Phänomen...
Aus teils historischen Gründen wird unsere Software ab einem Netzlaufwerk gestartet.
Wenn unsere Software (Aussage gem. Entwicklungsabteilung) ein Assembly ab dem Share nachladen möchte "findet" .NET dieses nicht, resp. sieht dieses nicht.
Wir investieren seit rund einem halben Jahr Zeit in dieses Problem und sind langsam wirklich etwas ratlos... als Temporär Lösung starten wir die TS-Farmen jede Nach neu...
Systemumgebung:
Datenbankserver inkl. FileShare für Programm: Windows Server 2012 /2012 R2/ 2008
FileShare mit Freigabe im Netzwerk via SMBTerminalserver: Windows Server 2012 R2 Terminalserver
Feststellungen- Problem tritt Ausschliesslich auf Windows Server 2012 R2 Terminalserver Sessions auf.
- Auf diesem TS kann nachher kein Anwender mehr arbeiten (TS-Farmen mit Loadbalancing für die Zugriffe)
- Auf einem anderen TS kann normal gearbeitet werden in unserer Software
- Netzlaufwerk ist vorhanden zu diesem Zeitpunkt - Zugriff über Windows-Explorer funktioniert.
- Problem tritt Random auf - sowohl was Regelmässigkeit betrifft, wie auch welcher TS der Farm betroffen ist
- Problem tritt bei lokalem Netzwerkzugriff NICHT auf, nur via TS
- Problem tritt dann auch mit Excel-Files auf, welche "Verweise" auf andere Excel Files haben
Workarounds im Moment:
- Wird das Netzlaufwerk neu verbunden, scheint alles wieder für die entsprechende Session zu passen - nicht aber für andere Sessions logischerweise
- TS Neustart löst das Problem (temporär)
Versuchte Lösungen:
- SMB 3.02 deaktivieren (aka wieder via SMB 1)
Wir hatten vor x Jahren schon mal Mühe bei SMB 2 bezüglich Zugriff - Sämtliche Windows Updates vollzogen
- Zugriff nicht über Laufwerk sondern direkt via UNC
Eventlog
Das Eventlog auf dem TS beinhaltet zu diesem Zeitpunkt jeweils 3 Fehlermeldungen:
1x .NET Runtime (Eigentlicher Absturz)
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.Runtime.InteropServices.SEHException2x Anwendungsabsturzereignisse
Die erwähnte DLL ist jedoch unterschiedlich - sind jedoch immer .NET Framework oder Windows spezifisch--------------------
Hat jemand einen Tip oder ähnliche Probleme?
Danke und Gruss
Roman
- Bearbeitet Roman Vonwil Mittwoch, 16. November 2016 07:01
- Typ geändert Mihaela ParedesMicrosoft contingent staff, Moderator Freitag, 2. Dezember 2016 09:54 Wegen keiner weiteren Aktivitäten verschiebe ich das Thema als Diskussion.
Alle Antworten
-
Hi Roman,
sind die Terminalserver physisch oder virtuell?
Wie werden die Netzlaufwerke verbunden - Anmeldeskript, Gruppenrichtlinien, etc.?
Wenn Gruppenrichtlinien - welcher Modus ist für das Verbinden eingestellt (Aktualisieren, Ersetzen, usw.)?Weiterer Workaround: Server täglich nachts neu starten (ist bei Terminalservern unabhängig davon immer ratsam, um "Altlasten" des Tages loszuwerden), tritt das Problem dann immer noch auf?
Liebe Grüße
Ben
_____________________________________
MCSA Office 365
MCSA SQL Server 2014
MCITP Windows 7
MCSA Windows 8/10
MCSE Cloud Platform and Infrastructure
MCSE Messaging
MCSE Productivity
_____________________________________
Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort. Danke! :-).
-
Hi,
Idee von mir:
1.)
Mit Procdump einen Dump erstellen lassen wenn die Anwendungen abstürzt.
Der Aufruf wartet und erstellt die Dumpdatei, die du mit Windows Debugging Tool debuggen kannst!
(Symbolpath angeben erleichtert die Sache um einiges)
procdump -h -ma deinprozess.exe c:\Dump\deinprozess.dmp
2.)
Mit dem Process Explorer mal Live in den Stack schauen ...vielleicht sieht du hier woran er hängt?
Hier gibt es auch einen Reiter .NET Assemblies und .NET Performance)
3.)
Überprüft doch mal die Systemvariablen (TS und auf dem Client) -> auch das geht über den ProcessExplorer (-> Reiter Enviroment))
4.)
Mit dem Process Monitor ein Log erstellen. Filter auf eure Anwendung und hier mal schauen ob euch etwas auffällt. (Tip: Reiter Tools->Count Occurrences und bei Colums Result wählen)
Du kannst die Dateien gerne mal in die Cloud laden und den Link posten.Dann schau ich gern auch mal drauf.
______________________________________________________
In allen Anwendungen kann man einen Link zum Symbolsserver einrichten um ausführliche Informationen zu bekommen. Hier kann man die folgenden Einstellungen treffen.
_______________________________________________________
dbghelp.dll
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dbghelp.dll (bei installierten Debugtools (x64) )
oder
C:\Windows\system32\dbghelp.dll (default)
Symbols path
SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Bis dann, Toni! Wenn Dir meine Antwort hilft dann markiere sie bitte als Antwort! Vielen Dank!
- Bearbeitet tonibert Mittwoch, 16. November 2016 10:26
-
Hoi Ben & Toni
Danke schon mal für die prompten Reaktionen!
@Ben - zu deinen Fragen
-
Die Terminalserver sind virtuell (Hyper-V)
-
Mapping der Netzlaufewerke wird via Loginscript (vb-script eingebunden über LoginScript) gemacht.
--> Grundsätzlich wird bei jeder Anmeldung gelöscht und neu verbunden (NET USE)
@Toni
- Dein Vorschlag bezüglich ProcDump ist gut, haben wir aber eben bereits gemacht (Entwicklungsabteilung).
Problem hierbei ist rein das optimierte "Nachladen" von dlls - das ist pures .NET Framework und lässt sich so nicht direkt tracen gem. Entwickler.
- wurde bereits gemacht - leider Erfolglos - Problem ist der eigentliche .NET Runtime Absturz gem. meiner Beschreibung :(
- werde ich prüfen!
- werde ich prüfen!
Gruss und Danke
Roman
-
-
Kann man, wenn das Problem auftritt, noch über den Explorer auf die Netzlaufwerke zugreifen oder geht das auch nicht mehr?
Liebe Grüße
Ben
_____________________________________
MCSA Office 365
MCSA SQL Server 2014
MCITP Windows 7
MCSA Windows 8/10
MCSE Cloud Platform and Infrastructure
MCSE Messaging
MCSE Productivity
_____________________________________
Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort. Danke! :-).
-
Moin,
werden die Freigaben direkt oder über DFS verbunden?
Liebe Grüße
Ben
_____________________________________
MCSA Office 365
MCSA SQL Server 2014
MCITP Windows 7
MCSA Windows 8/10
MCSE Cloud Platform and Infrastructure
MCSE Messaging
MCSE Productivity
_____________________________________
Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort. Danke! :-).
-
Hallo Roman,
ich melde mich hier als Leidensgenosse, da deine Probleme sehr stark meinen Problemen beim Kunden ähneln. Auch unsere Software wird über ein Netzlaufwerk auf den Windows-PC-Arbeitsplätzen oder TS zur Verfügung gestellt. Wir beobachten ebenfalls, dass das Problem überwiegend auf TS auftritt. Windows-PC-Arbeitsplätze im gleichen Netzwerk, die auch auf das gleiche Netzlaufwerk zugreifen, betrifft dieses Problem nicht.
Eine besonderer Eintrag im EventLog sticht extrem hervor, welches angeblich auf Probleme in der Netzwerkverbindung hinweisen. Es geht um folgenden Eintrag:
Protokollname: Application
Quelle: Application Error
Datum: 12.01.2017 13:27:26
Ereignis-ID: 1005
Aufgabenkategorie:(100)
Ebene: Fehler
Schlüsselwörter:Klassisch
Benutzer: Nicht zutreffend
Computer: XXX.XXX.local
Beschreibung:
Aus einem der folgenden Gründe kann nicht auf die Datei "" zugegriffen werden: Es besteht ein Problem mit der Netzwerkverbindung, dem Datenträger mit der gespeicherten Datei bzw. den auf dem Computer installierten Speichertreibern, oder der Datenträger fehlt. Das Programm XXX.exe wurde wegen dieses Fehlers geschlossen.Kannst du den gleichen Eintrag bei deinen Kunden feststellen?
Da wo die Probleme akut waren, haben wir das Programmverzeichnis, welches auf dem Netzlaufwerk liegt, lokal auf den Terminalserver verschoben. Danach lief das Programm deutlich stabiler. Ist sowas mit deiner Software möglich?
Nichtsdestotrotz wäre die Ursache dieser Fehler interessant.
Gruß Philip
-
kann es ggf. hiermit zu tun haben?
https://support.microsoft.com/en-us/help/2536487/applications-crash-or-become-unresponsive-if-another-user-logs-off-a-remote-desktop-session-in-windows-server-2008-or-windows-server-2008-r2
Gilt auch für Server 2012R2 und ist (angeblich) mit Server 2016 behoben.
Gruß Andrea
Je grösser die Insel des Wissens, desto grösser die Küste der Verzweiflung...
-
Frage: Ist der Server mit dem Share in derselben Domäne ? Falls ja, sollte man eine CIFS-Dienst-Delegierung (der Terminalserver vertraut den Share) erstellen. Dann wird für die Auth. Kerberos benutzt. Vielleicht hilft das...
DSA.msc aufrufen-->Eigenschft des beteiligten Computers-->Delegierung-->Computer bei Delegierungen angegebener Dienste vertrauen-->Nur Kerberos-->Hinzufügen-->anderen Computer auswählen-->Diensttyp cifs.
-
kann es ggf. hiermit zu tun haben?
https://support.microsoft.com/en-us/help/2536487/applications-crash-or-become-unresponsive-if-another-user-logs-off-a-remote-desktop-session-in-windows-server-2008-or-windows-server-2008-r2
Gilt auch für Server 2012R2 und ist (angeblich) mit Server 2016 behoben.
Gruß Andrea
Danke für den Artikel. Die von Microsoft beschriebene Lösung halte ich für bedenklich und Gewinnorientiert. Mir stellt sich die Frage, warum die Lösung für den 2016er nicht als Update für die alten Betriebssysteme zur Verfügung gestellt wird!?
Gruß Philip
-
Frage: Ist der Server mit dem Share in derselben Domäne ? Falls ja, sollte man eine CIFS-Dienst-Delegierung (der Terminalserver vertraut den Share) erstellen. Dann wird für die Auth. Kerberos benutzt. Vielleicht hilft das...
DSA.msc aufrufen-->Eigenschft des beteiligten Computers-->Delegierung-->Computer bei Delegierungen angegebener Dienste vertrauen-->Nur Kerberos-->Hinzufügen-->anderen Computer auswählen-->Diensttyp cifs.
Danke für den Tipp. Klingt für mich plausibel, jedoch sind trotz konfigurierter Delegierung die Abstürze weiterhin vorhanden.
:(
Gruß Philip