Řešení potíží s bránou firewall MS DTC

Prohlášení o odmítnutí odpovědnosti pro už nepodporovaný obsah KB

Tento článek byl napsán pro produkty, ke kterým již Microsoft nadále nenabízí podporu. Článek je tedy poskytován „tak, jak je“ a nebude už nadále aktualizován.

Souhrn

Tento článek popisuje postup pro odstraňování potíží můžete povolit Microsoft Distributed Transaction Coordinator (MS DTC) komunikovat prostřednictvím brány firewall s jiným MS DTC. Následující seznam uvádí některé problémy, které mohou nastat při použití MS DTC prostřednictvím brány firewall:
  • Funkce vaše aplikace úspěšně při komponenty serveru MTS nebo COM + mít Podporu transakcí vlastnost nastavena na Není podporován nebo podporováno, ale nefunguje úspěšně Pokud tato vlastnost nastavena na vyžaduje nebo Vyžaduje nové.
  • Zobrazí se následující chybová zpráva:
    Nová transakce nemůže vypsat zadanou transakci koordinátora.
  • Zobrazí se následující chybová zpráva:
    8004d00a chyba. Chyba distribuované transakce
Ačkoli několik jiných dokumentů Microsoft popisují, jak tento problém vyřešit, tento článek shrnuje většinu z nich.

Poznámka: Kroky, které následují, jsou navrženy pro použití s Microsoft Windows NT a Microsoft Windows 2000 pouze operační systémy.

Další informace

Kroky pro řešení potíží

Důležité: Tento oddíl, metoda nebo úkol obsahuje kroky, které popisují úpravu registru. Při nesprávné úpravě registru mohou nastat závažné problémy Proto se ujistěte, že budete opatrně postupovat podle těchto kroků Pro zvýšení ochrany před úpravou zálohujte registr. Pokud dojde k potížím, pak můžete registr obnovit ze zálohy. Pro další informace o zálohování a obnovení registru klepněte na následující číslo článku databáze Microsoft Knowledge Base:
322756 postup zálohování a obnovení registru v systému Windows
  1. Ověřte, zda je spuštěna služba MS DTC na obou serverech.
  2. Pokud server se systémem Windows NT 4.0, je nutné znovu použít Windows NT 4.0 Service Pack 6 (SP6) po instalaci sady Windows 4.0 možnosti Pack (NT) systému Windows NT. Kontrola verze souborů, které jsou uvedeny v následující tabulce můžete ověřit, že systém Windows NT 4.0 s aktualizací SP6 je po instalaci systému Windows NT 4.0 Option Pack znovu použít:
    Název souboruVerze po instalaci sady Windows NTVerze po přeinstalaci SP6
    Msdtcprx.dll1997.11.5321999.6.854.0
    Msdtctm.dll1997.11.5321999.6.854.0
    Xolehlp.dll1997.11.5321998.08.762
    Další informace o instalaci systému Windows NT 4.0 Option Pack naleznete v následujícím dokumentu white paper společnosti Microsoft:
    Služba IIS 4.0 doporučený postup instalace
    http://support.microsoft.com/support/iis/install/install_iis4.asp
  3. Oba servery nakonfigurujte tak, aby MS DTC komunikace probíhající mezi bránou firewall. Ovládací prvek RPC dynamické přidělování portů, postupujte takto.

    Poznámka: Postupujte podle kroků v obou počítačích.

    Poznámka: Brána firewall musí být otevřeny v obou směrech pro určené porty.
    1. Chcete-li spustit Editor registru, klepněte na tlačítko Start, klepněte na příkaz Spustit, zadejte příkaz regedt32a klepněte na tlačítko OK.



      Je nutné použít soubor Regedt32.exe, nikoli soubor Regedit.exe. Soubor Regedit.exe nepodporuje typ dat REG_MULTI_SZ požadované hodnoty portů.
    2. V editoru registru rozbalte následující klíč:
      HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
    3. Klepněte na složku vzdálené volání Procedur a v nabídce Úpravy klepněte na příkaz Přidat klíč .
    4. V dialogovém okně Přidat klíč do pole Název klíče zadejte Internet a potom klepněte na tlačítko OK.
    5. Klepněte na složku Internet a v nabídce Úpravy klepněte na příkaz Přidat hodnotu .
    6. V dialogovém okně Přidat hodnotu zadejte porty v Název hodnoty pole.
    7. V poli Typ dat vyberte REG_MULTI_SZa klepněte na tlačítko OK.
    8. V dialogovém okně Editor Víceřetězcová zadejte port nebo porty, které chcete RPC pro dynamické přidělování portů v poli Údaj a potom klepněte na tlačítko OK.



      Každá hodnota řetězce určuje jeden port nebo rozsah portů. Například chcete-li otevřít port 5000, zadejte "5000". Chcete-li otevřít port 5000 k 5020 včetně portu, zadejte "5000-5020". Můžete určit více porty nebo rozsahy portů zadáním jednoho portu nebo rozsahu portů na každém řádku. Všechny porty musí být v rozsahu 1024 až 65535. Pokud je libovolný port mimo tento rozsah nebo libovolný řetězec je neplatný, RPC celé konfigurace jsou považovány za neplatné.

      Společnost Microsoft doporučuje otevřete porty z 5000 a vyšší a otevřete minimum 15: 20 portů.
    9. Postupujte podle kroku e až h krok přidat jiný klíč. Pomocí následujících hodnot:
      • Hodnota: PortsInternetAvailable
      • Datový typ: REG_SZ
      • Data: Y


      Znamená to, že porty, které jsou uvedeny v části porty hodnoty mají být k dispozici na Internetu.
    10. V konfiguraci brány firewall pro příchozí přístup k zadané dynamické porty a port 135 (mapovač koncových bodů RPC port).
    11. Restartujte počítač. Po restartování služby vzdálené volání Procedur přiřadí příchozí porty dynamicky, podle hodnoty registru, které jste zadali. Například otevřete porty 5000 až 5020 včetně, vytvořte následující pojmenované hodnoty:
      • Porty: REG_MULTI-SZ: 5000-5020
      • PortsInternetAvailable: REG_SZ: Y
      • UseInternetPorts: REG_SZ: Y

    Koordinátor DTC vyžaduje také názvy počítačů lze vyřešit pomocí systému NetBIOS nebo DNS. Můžete vyzkoušet, zda NetBIOS lze přeložit názvy pomocí protokolu PING a název serveru. Klientský počítač musí být schopen přeložit název serveru. Navíc server musí být schopen vyřešit název klienta. Pokud NetBIOS nelze přeložit názvy, můžete přidat položky do souborů Lmhosts v počítačích. Další informace o konfiguraci portů TCP v systému Windows 2000 klepněte na následující číslo článku databáze Microsoft Knowledge Base:

    300083 jak omezit porty TCP/IP v systému Windows 2000 a Windows XP

  4. Pokud MS DTC stále nefunguje přes bránu firewall, nástroj DTCPing.exe stáhnout a nainstalovat tento nástroj na oba servery. Je k dispozici pro stahování Microsoft Download Center následující soubor:
    Soubor DTCPing.exe obsahuje následující soubory:
       Date         Time   Version  Size     Filename   ----------------------------------------------------------
    29-Oct-2003 22:56 1.8.0.1 274,490 Dtcping.exe
    15-Dec-2003 22:05 1,618 Eula.txt
    24-Nov-2003 20:59 1,560 Machinea_failure.log
    24-Nov-2003 20:21 1,901 Machinea_success.log
    24-Nov-2003 20:55 999 Machineb_failure.log
    24-Nov-2003 20:31 1,750 Machineb_success.log
    24-Nov-2003 20:15 2,325 Readme.txt
    Datum vydání: 24. listopadu 2003

    Pro více informací o tom, jak stahovat soubory podpory společnosti Microsoft, klepněte na následující číslo článku v databázi Microsoft Knowledge Base:
    119591 jak získat soubory podpory společnosti Microsoft ze serverů služeb online
    Microsoft zkontroloval tento soubor na přítomnost virů. Společnost Microsoft použila aktuální antivirový software, který byl k dispozici k datu, kdy byl soubor vydán. Soubor je uložen na zabezpečených serverech, které pomáhají zabránit neoprávněným změnám v souboru.
  5. Použít v souboru Readme.txt, který je obsažen v DTCPing.exe stáhnout Chcete-li vyzkoušet vzdálené volání procedur (RPC) a koordinátor DTC (Distributed Transaction) sdělení Server1 Server2. Je-li test úspěšný, spusťte test z počítače Server2 do počítače Server1.

    Všimněte si, že pokud RPC nelze toku v obou směrech, MS DTC komunikace se nezdaří v obou směrech. Pokud dojde k selhání komunikace vzdáleného volání Procedur, okno DTCPing (na obou serveru) zobrazí tato chyba, která je také uložena v souboru dtcping.log přidružené. Naleznete v souboru Readme.txt pro další informace. Pokud se test nezdaří v obou směrech a protokolu označuje, že selhání v komunikaci vzdáleného volání Procedur, pokračujte dalším krokem. Pokud se test nezdaří v obou směrech a protokolu označuje selhání komunikace koordinátoru DTC, přejděte ke kroku 9 níže.
  6. Pokud RPC selhala alespoň jeden směr (například z Server1 server2) přímé Správce brány firewall, ujistěte se, že zprávy protokolu ICMP (Internet Control) je otevřena v obou směrech.

    Poznámka: Obvykle můžete určit, pokud RPC selhala ve čtení souboru dtcping.log.

    Ve výchozím nastavení je port1 ICMP. To lze ověřit v protokolu souboru, který je umístěn ve složce %windir%\WinNT\System32\Drivers\. Ping Server2 podle názvu NetBios z Server1. Pokud se provedení příkazu ping nezdaří, pokračujte dalším krokem. V opačném případě pokračujte krokem 8.
  7. Ping Server2 podle adresy IP z Server1 a ujistěte se, že správný port je otevřen pro ping v bráně firewall. Trasování programu Sledování sítě lze ověřit. Pokud úspěšný ping adresa IP a název NetBios, provedení příkazu ping nezdaří, je problém s rozlišením názvů.

    Poznámka: Lze použít příkaz ipconfig/all příkaz načíst adresu IP nebo adresu IP serveru.

    Chcete-li položku v souboru Hosts klienta serveru je rychlý způsob, jak otestovat překlad názvů. Jedná se o server, na kterém název NetBios ping nezdaří. Položku můžete model po vstupu vzorku, který je obsažen v souboru.

    Poznámka: Musíte pouze položku v souboru Hosts pro účely odstraňování potíží. Pokud se nová položka opravuje problém s rozlišením názvů, odeberte položku ze souboru Hosts a položkou, kterou je nutné provést v DNS, WINS server nebo souboru LmHosts.

    Další řešení k potížím s překladem názvů existují, ale jsou mimo oblast působnosti tohoto článku.
  8. Pokud dojde k selhání příkazu ping Server2 z Server1 podle názvu NetBios nebo úspěšný ping Server2 z Server1 podle názvu NetBios, avšak zkouška DTCPing ukazuje, že komunikace vzdáleného volání Procedur se nezdaří, je možné, že Port 135 (Mapovač koncový bod, nebo EPM) nebyl obousměrně otevřen v bráně firewall. Zkontrolujte bránu firewall a ujistěte se, že EPM je otevřen v obou směrech. V tomto okamžiku sledování sítě může pomoci příčinu.
  9. Dostanete pouze tento krok, pokud zkoušky DTCPing označuje, že komunikace vzdáleného volání Procedur pracuje v obou směrech. Pokud DTCPing označuje žádné chyby v obou směrech, je správně toku komunikace vzdáleného volání Procedur a MS DTC.
  10. Pokud DTCPing označuje, že komunikace koordinátoru DTC selhal v alespoň jeden směr (například z Server1 server2), přímé firewall správcům ověřit, zda jsou porty otevřené, že vývojář zadán, když vývojář prošla v článku Konfigurace MS DTC (viz krok 3). Kromě toho lze použít některá pravidla brány firewall, která zakazuje RPC zpětná volání pro jednoho (nebo obou) servery. Sledování sítě může pomoci při řešení této konkrétní situaci.
  11. Pokud DTCPing vrátí chybová zpráva podobná následující:
    Neočekávané: Moje relace identifikátor guid je stejný jako identifikátor guid partnera
    Zkontrolujte, zda je aktuální server duplicitní nebo klonovat z druhého serveru. Pokud ano, vyhledejte HKEY_CLASSES_ROOT\CID klíč v registru. Pod tímto klíčem můžete zaznamenat více než jeden identifikátor GUID. Vyhledání identifikátoru GUID, jehož základní popis klíče je MSDTC. Všimněte si, že tento identifikátor GUID je rovněž uvedena v okně Výstup DTCPing. Pokud druhý server má identifikátor GUID, který je stejný pro MS DTC v jeho registru, je nutné vytvořit nový identifikátor GUID pro MS DTC v jednom na registrů. K tomu můžete použít cílem.

    Po přidání nový identifikátor GUID a také všechny jeho základní klíče HKEY_CLASSES_ROOT\CID, nezapomeňte odstranit starý identifikátor GUID, který nahrazuje.

    Pokud tento krok vyřeší váš problém, doporučujeme, abyste si přečetli v následujícím článku se dozvíte další informace o replikaci (nebo "ghosting") počítače:Další informace získáte klepnutím na následující číslo článku databáze Microsoft Knowledge Base:

    162001 disk není duplicitní nainstalované verze systému Windows

Vlastnosti

ID článku: 306843 - Poslední kontrola: 20. 1. 2017 - Revize: 1

Váš názor