您的位置:首页 > 其它

MS DTC 事务管理器启动失败

2009-12-28 01:06 225 查看
MS DTC 事务管理器启动失败。LogInit 返回错误 0x2。
2007-09-16 04:00
问题解决:
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 :stopdtc>nul 2>&1
for /f "Tokens=*" %%L in ('reg query HKLM/System/CurrentControlSet/Services^|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 "HKLM/System/CurrentControlSet/Services/!svc!" /V

type^|FIND "REG_DWORD"') do (
set /a type=%%y
)
goto :EOF
:getstart
for /f "Tokens=2,3" %%x in ('reg query "HKLM/System/CurrentControlSet/Services/!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%/System32/msdtc.exe -uninstall
%WINDIR%/System32/msdtc.exe -uninstall
call :delkey "HKCR/CID"
call :delkey "HKLM/SYSTEM/CurrentControlSet/Services/MSDTC"
call :delkey "HKLM/SYSTEM/ControlSet001/Services/MSDTC"
call :delkey "HKLM/SYSTEM/ControlSet002/Services/MSDTC"
call :delkey "HKLM/Software/Microsoft/MSDTC"
@echo %WINDIR%/System32/msdtc.exe -install
%WINDIR%/System32/msdtc.exe -install
endlocal
goto :EOF
:delkey
set key=%1
call :delkeyq %key% >nul 2>&1
@echo.
goto :EOF
:delkeyq
REG DELETE %key% /F

SETP 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 "HKLM/SOFTWARE/Microsoft/MSDTC/XADLL" /F
regsvr32 mtxoci.dll
endlocal

运行完,看看日志

完美解决IIS 服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'。错误是 '没有注册类别现象:
浏览ASP页面提示 500内部错误

事件查看器中:
[1]:
服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'。错误是 '没有注册类别'。
有关此消息的详细信息,请访问 Microsoft 联机支持站点: http://www.microsoft.com/contentredirect.asp
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

[2]:
无法启动 MS DTC 事务管理器。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

[3]:
MS DTC 事务管理器启动失败。LogInit 返回错误 0x2。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

[4]:
找不到 MS DTC 日志文件。在确认所有由 MS DTC 协调的资源管理器不具有“不确定”状态的事务

之后,请运行 msdtc -resetlog 创建日志文件。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

我的运行环境:
WinXP Pro SP2;

解决办法:
[1]:
检查你的DTC服务(全名:Distributed Transaction Coordinator)是否可以正常启动,如果正常的话

请你跳过此步骤;如果出错,无法正常启动,请在开始菜单的运行中 运行:msdtc -resetlog 以创建

日志文件。重起机器,检查IIS是否可以正常使用,若不行继续。

[2]:
在CMD下执行以下命令:
cd %windir%/system32/inetsrv

rundll32 wamreg.dll, CreateIISPackage

regsvr32 asptxn.dll

重起机器,我的问题到这步已经可以完美解决!遇到这个郁闷的问题 系统导了一次,IIS重装了若干

次,BAIDU了一些资料,终于解决了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐