Ist das überhaupt eine berechtigte Frage? Ich habe eine .NET Windows-App, die MSTDC verwendet und eine Ausnahme auslöst:
System.Transactions.TransactionManagerCommunicationException: Der Netzwerkzugriff für Distributed Transaction Manager (MSDTC) wurde deaktiviert. Aktivieren Sie DTC für den Netzwerkzugriff in der Sicherheitskonfiguration für MSDTC mit dem Component Services-Verwaltungstool ---> System.Runtime.InteropServices.COMException (0x8004D024): Der Transaktionsmanager hat die Unterstützung für Remote- / Netzwerktransaktionen deaktiviert. (Ausnahme von HRESULT: 0x8004D024) unter System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction
Ich habe die Kbalertz-Anleitung befolgt, um MSDTC auf dem PC zu aktivieren, auf dem die App installiert ist, aber der Fehler tritt weiterhin auf.
Ich habe mich gefragt, ob dies ein Datenbankproblem ist. Wenn ja, wie kann ich das Problem beheben?
quelle
Antworten:
Verwenden Sie diese Option für Windows Server 2008 R2 und Windows Server 2012 R2
Klicken Sie auf Start , klicken Sie auf Ausführen , geben Sie dcomcnfg ein und klicken Sie dann auf OK , um die Komponentendienste zu öffnen .
Klicken Sie in der Konsolenstruktur auf Komponentendienste , auf Computer , auf Arbeitsplatz , auf Distributed Transaction Coordinator und dann auf Local DTC .
Klicken Sie mit der rechten Maustaste auf Lokaler DTC und klicken Sie auf Eigenschaften , um das Dialogfeld Lokale DTC-Eigenschaften anzuzeigen .
Klicken Sie auf die Registerkarte Sicherheit .
Aktivieren Sie das Kontrollkästchen "Network DTC Access" .
Aktivieren Sie abschließend die Kontrollkästchen "Eingehende zulassen" und "Ausgehende zulassen" .
Klicken Sie auf Übernehmen , OK .
Es wird eine Meldung zum Neustart des Dienstes angezeigt .
Klicken Sie auf OK und das ist alles.
Referenz: https://msdn.microsoft.com/en-us/library/dd327979.aspx
Hinweis: Manchmal ist der Netzwerk - Firewall auf dem lokalen Computer oder den Server könnte die Verbindung unterbrechen , so stellen Sie sicher , Sie erstellen Regeln „Eingehende zulassen“ und „Ausgehende zulassen“ Verbindung für
C:\Windows\System32\msdtc.exe
quelle
msdtc.exe
ist:c:\windows\system32\msdtc.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
. Weitere Infos zu den Eigenschaften hier .Benötigen Sie überhaupt MSDTC? Die eskalierende Eskalation wird häufig durch das Erstellen mehrerer Verbindungen innerhalb eines einzelnen TransactionScope verursacht.
Wenn Sie es benötigen, müssen Sie es wie in der Fehlermeldung beschrieben aktivieren. Unter XP:
quelle
Ich habe festgestellt, dass der beste Weg zum Debuggen die Verwendung des Microsoft-Tools namens DTCPing ist
Ich hatte einige Probleme in unserem alten Firmennetzwerk und habe ein paar Tipps:
Wenn der DTCPing meiner Erfahrung nach eine vom Client initiierte und vom Server initiierte DTC-Verbindung herstellen kann, sind Ihre Transaktionen nicht mehr das Problem.
quelle
Hier erfahren Sie auch , wie Sie MSDTC in der Datei services.msc der Systemsteuerung aktivieren.
quelle
MSDTC muss auf beiden Systemen aktiviert sein, sowohl auf dem Server als auch auf dem Client.
Stellen Sie außerdem sicher, dass zwischen den Systemen, die RPC blockieren, keine Firewall vorhanden ist.
DTCTest ist eine nette kleine App, mit der Sie andere Probleme beheben können.
quelle
@Dan,
Nur verteilte Transaktionen - Transaktionen, die mehr als eine einzelne Verbindung umfassen. Stellen Sie doppelt sicher, dass Sie nur eine einzige Verbindung innerhalb der Transaktion öffnen und diese nicht eskaliert - die Leistung wird auch viel besser.
quelle