问题解决:
setp1
停止相关服务
MSDTC_1.bat
@echooff
if{%1}=={}@echoSyntax:MSDTC1Filename&goto:EOF
setlocalENABLEDELAYEDEXPANSION
setfilename=%1
ifexist%filename%del/q%filename%
(
@echoAlerter
@echoEventSystem
@echoBrowser
@echoTrkWks
@echoDnscache
@echoEventlog
@echoPolicyAgent
@echodmserver
@echoMessenger
@echoNetlogon
@echoNtLmSsp
@echoNetman
@echoPlugPlay
@echoRpcSs
@echoRpcLocator
@echoNtmsSvc
@echoSamSs
@echolanmanserver
@echoSENS
@echoSchedule
@echoLmHosts
@echowinmgmt
@echoWmi
@echoW32Time
@echolanmanworkstation
)>"%TEMP%MSDTC1.TMP"
call:stopdtc>nul2>&1
for/f"Tokens=*"%%Lin('regqueryHKLMSystemCurrentControlSetServices^|FINDSTR/I/B
/L/C:"HKEY_LOCAL_MACHINE"')do(
setline=%%L
setkey=HKLM!LINE:~18!
call:subkey"!key!"
call:testsvc
)
endlocal
goto:EOF
:stopdtc
scstopmsdtc
goto:EOF
:testsvc
for/f"Tokens=*"%%cin('@echo!svc!^|findstr/I/B/E/L/G:"%TEMP%MSDTC1.TMP"')dogoto
:EOF
set/astart=3
set/atype=0
call:getstart>nul2>&1
call:gettype>nul2>&1
if%type%LSS16goto:EOF
if%start%NEQ2goto:EOF
scconfig!svc!start=demand
@echoscconfig!svc!start=auto>>%filename%
goto:EOF
:gettype
for/f"Tokens=2,3"%%xin('regquery"HKLMSystemCurrentControlSetServices!svc!"/V
type^|FIND"REG_DWORD"')do(
set/atype=%%y
)
goto:EOF
:getstart
for/f"Tokens=2,3"%%xin('regquery"HKLMSystemCurrentControlSetServices!svc!"/V
start^|FIND"REG_DWORD"')do(
set/astart=%%y
)
goto:EOF
:subkey
setsvc=%~nx1
重启机器
step2
删除关联的注册表项及重新安装msdtc组件
MSDTC_2.bat
@echooff
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
setkey=%1
call:delkeyq%key%>nul2>&1
@echo.
goto:EOF
:delkeyq
REGDELETE%key%/F
SETP3
restlog
MSDTC_3.bat
@echooff
if{%1}=={}@echoSyntax:MSDTC3Filename&goto:EOF
ifnotexist%1Syntax:MSDTC3Filename-%1wasNOTfound.&goto:EOF
setlocal
setfilename=%1
for/f"Tokens=*"%%rin('type%filename%')do(
%%r
)
regadd"HKLMSOFTWAREMicrosoftMSDTCXADLL"/F
regsvr32mtxoci.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]:
无法启动MSDTC事务管理器。
有关更多信息,请参阅在http://go.microsoft.com/fwlink/events.asp的帮助和支持中心。
[3]:
MSDTC事务管理器启动失败。LogInit返回错误0x2。
有关更多信息,请参阅在http://go.microsoft.com/fwlink/events.asp的帮助和支持中心。
[4]:
找不到MSDTC日志文件。在确认所有由MSDTC协调的资源管理器不具有“不确定”状态的事务
之后,请运行msdtc-resetlog创建日志文件。
有关更多信息,请参阅在http://go.microsoft.com/fwlink/events.asp的帮助和支持中心。
我的运行环境:
WinXPProSP2;
解决办法:
[1]:
检查你的DTC服务(全名:DistributedTransactionCoordinator)是否可以正常启动,如果正常的话
请你跳过此步骤;如果出错,无法正常启动,请在开始菜单的运行中运行:msdtc-resetlog以创建
日志文件。重起机器,检查IIS是否可以正常使用,若不行继续。
[2]:
在CMD下执行以下命令:
cd%windir%system32inetsrv
rundll32wamreg.dll,CreateIISPackage
regsvr32asptxn.dll
重起机器,我的问题到这步已经可以完美解决!遇到这个郁闷的问题系统导了一次,IIS重装了若干
次,BAIDU了一些资料,终于解决了,希望对你有帮助。