怎么安装DTC服务?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么安装DTC服务?相关的知识,希望对你有一定的参考价值。

我的组件服务无法查看,一点就出现个对话框写着:“DTC已由SQL server安装。请重新安装!”请问各位高手,我该怎么办?
详细点的 光重装IIS没有用啊!好的50分!

1、删除注册表中的如下三个键
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\MSDTC
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MSDTC
HKEY_CLASSES_ROOT\\CID
4、停止MSDTC服务:net stop msdtc
5、卸载MSDTC服务:msdtc -uninstall
6、重新安装MSDTC服务:msdtc -install
7、确认在事件查看器中msdtc服务已经正常启动
8、重启机器
9、在命令行窗口执行
msdtc -resetlog即可。
参考技术A 第一步:msdtc1.bat
@echo off
if %1== @echo Syntax: MSDTC1 Filename&goto :EOF
setlocal ENABLEDELAYEDEXPANSION
set filename=%1
if exist %filename% del /q %filename%
(
@echo Alerter
@echo EventSystem
@echo Browser
@echo TrkWks
@echo Dnscache
@echo Eventlog
@echo PolicyAgent
@echo dmserver
@echo Messenger
@echo Netlogon
@echo NtLmSsp
@echo Netman
@echo PlugPlay
@echo RpcSs
@echo RpcLocator
@echo NtmsSvc
@echo SamSs
@echo lanmanserver
@echo SENS
@echo Schedule
@echo LmHosts
@echo winmgmt
@echo Wmi
@echo W32Time
@echo lanmanworkstation
)>"%TEMP%MSDTC1.TMP"
call :stopdtc>nul 2>&1
for /f "Tokens=*" %%L in ('reg query HKLMSystemCurrentControlSetServices^|FINDSTR /I /B /L /C:"HKEY_LOCAL_MACHINE"') do (
set line=%%L
set key=HKLM!LINE:~18!
call :subkey "!key!"
call :testsvc
)
endlocal
goto :EOF
:stopdtc
sc stop msdtc
goto :EOF
:testsvc
for /f "Tokens=*" %%c in ('@echo !svc!^|findstr /I /B /E /L /G:"%TEMP%MSDTC1.TMP"') do goto :EOF
set /a start=3
set /a type=0
call :getstart>nul 2>&1
call :gettype>nul 2>&1
if %type% LSS 16 goto :EOF
if %start% NEQ 2 goto :EOF
sc config !svc! start= demand
@echo sc config !svc! start= auto>>%filename%
goto :EOF
:gettype
for /f "Tokens=2,3" %%x in ('reg query "HKLMSystemCurrentControlSetServices!svc!" /V type^|FIND "REG_DWORD"') do (
set /a type=%%y
)
goto :EOF
:getstart
for /f "Tokens=2,3" %%x in ('reg query "HKLMSystemCurrentControlSetServices!svc!" /V start^|FIND "REG_DWORD"') do (
set /a start=%%y
)
goto :EOF
:subkey
set svc=%~nx1
然后重启。
第二步:msdtc2.bat
@echo off
setlocal
@echo %WINDIR%System32msdtc.exe -uninstall
%WINDIR%System32msdtc.exe -uninstall
call :delkey "HKCRCID"
call :delkey "HKLMSYSTEMCurrentControlSetServicesMSDTC"
call :delkey "HKLMSYSTEMControlSet001ServicesMSDTC"
call :delkey "HKLMSYSTEMControlSet002ServicesMSDTC"
call :delkey "HKLMSoftwareMicrosoftMSDTC"
@echo %WINDIR%System32msdtc.exe -install
%WINDIR%System32msdtc.exe -install
endlocal
goto :EOF
:delkey
set key=%1
call :delkeyq %key% >nul 2>&1
@echo.
goto :EOF
:delkeyq
REG DELETE %key% /F
第三步:msdtc3.bat
@echo off
if %1== @echo Syntax: MSDTC3 Filename&goto :EOF
if not exist %1 Syntax: MSDTC3 Filename - %1 was NOT found.&goto :EOF
setlocal
set filename=%1
for /f "Tokens=*" %%r in ('type %filename%') do (
%%r
)
reg add "HKLMSOFTWAREMicrosoftMSDTCXADLL" /F
regsvr32 mtxoci.dll
endlocal
然后查看服务,就可以看到Distributed Transaction Coordinator服务已经可以启动了。
参考技术B 重新安装一下IIS服务即可解决。本回答被提问者采纳

怎么启动分布式事务处理协调器(DTC)

请大侠们告诉我启动的步骤

若要完全启用 MS DTC,请使用以下步骤: 


1.在控制面板中,打开“管理工具”,然后打开“计算机管理”。


2.在“计算机管理”的左窗格中,展开“服务和应用程序”,再单击“服务”。


3.在“计算机管理”的右窗格中,右键单击“Distributed Transaction Coordinator(分布式事务协调器)”并选择“属性”。


4.在“Distributed Transaction Coordinator(分布式事务协调器)”窗口中,单击“常规” 选项卡,再单击“停止”停止该服务。


5.在“Distributed Transaction Coordinator(分布式事务协调器)”窗口中,单击“登录”选项卡,并将登录帐户设置为 NT AUTHORITY\\NetworkService。


6.单击“应用”和“确定”以关闭分布式事务协调器的窗口。关闭“计算机管理”。关闭“管理工具”。

参考技术A   Microsoft分布式事务处理协调器(MS DTC)是一个事务管理器,它允许客户端应用程序在一个事务中包含多个不同的数据源。MS DTC协调在所有已在事务中登记的服务器间提交分布式事务。
  Microsoft? SQL Server安装可通过下列方法参与分布式事务:
  1,调用运行SQL Server的远程服务器上的存储过程。
  2,自动或显式地将本地事务提升为一个分布式事务并在该事务中登记远程服务器。
  3,执行分布式更新以更新多个OLE DB数据源上的数据。如果这些OLE DB数据源支持OLE DB分布式事务接口,SQL Server还可以将它们登记在分布式事务中。MS DTC服务协调正确完成分布式事务,以确保所有服务器上的全部更为永久性的,或在发生错误时删除所有更新。

以上是关于怎么安装DTC服务?的主要内容,如果未能解决你的问题,请参考以下文章

我在安装sql server 2005出现COM+警告后在网上找到:如下方法,照做后结果DTC服务没了,请问怎样恢复DTC

vista中MS DTC服务无法开启,该怎么开启

怎么启动分布式事务处理协调器(DTC)

安装了IIS后,输入http://localhost和127.0.0.1怎么都打不开,显示HTTP 500 - 内部服务器错误 Internet Exp

怎么修复MSDTC服务

MSDTC怎么启动