COM+ 无法与Microsoft 分布式事务协调程序交谈
1、首先进入组件服务,查看组件服务计算机我的电脑COM+应用程序,结果报错“COM+ 无法与
Microsoft 分布式事务协调程序交谈”,无法查看里面的对象。
2、进入事件查看器,发现msdtc服务没有正常启动。
3、删除注册表中的键:
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、重新设置IIS的IWAM账号密码。[在计算机管理中的用户管理里]
9、同步IIS metabase中IWAM_MYSERVER的密码
上面是网上找的方法.我是根据日志里的提示 在命令提示符里输入msdtc -resetlog
把日志全部清除.显示启动msdtc成功
再在组件服务中能够进入 com+了.
又找到这个...
Distributed Transaction Coordinator 服务因 3221229584 (0xC0001010) 服务性错误而停止。
方法一 :
在命令提示符下 执行 msdtc -resetlog(RESETLOGS的作用是将日志序列重置,这样以前的归档都将作废)
方法二 :
问题解决:
setp 1
停止相关服务
MSDTC_1.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 stopdtcnul 2&1
for f Tokens= %%L in ('reg query HKLMSystemCurrentControlSetServices^FINDSTR I B L CHKEY_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 getstartnul 2&1
call gettypenul 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
重启机器
step 2
删除关联的注册表项及重新安装msdtc组件
MSDTC_2.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
step 3
restlog
MSDTC_3.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
运行完,看看日志
已成功安装 Microsoft Distributed Transaction Coordinator 服务。