这两天在折腾超图SuperMap的地理信息系统(GIS)相关东西,做了一个IS.net的重点功能的小系统,完成之后居然不能把系统发布到IIS中,在百度知道上发问,居然把我的帖子给删了,难道是百度有微软的内鬼,怕暴露微软的缺陷?
折腾了半天,才找出问题。原来是因为先安装了.net后安装的IIS,因此引发了IIS未注册的问题,要想注册,可以查看 http://hi.baidu.com/hudiezhanshi/blog/item /9d3ce4f3eb4a43cc0a46e0df.html。(或见下)
因此,开发SuperMap IS.net的软件安装顺序必须为:
IIS信息服务器=》.net framework =》vs2005 =》SuperMap三组件(Object、IS.net、Deskpro)
如1、2步颠倒顺序,将引发IIS注册问题;如3、4颠倒将要手动将IS.net控件添加到vs中。
.net平台Bug不小啊
===============================================
===============================================
以下转帖《完美解决IIS服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'-没有注册类别 》
http://hi.baidu.com/hudiezhanshi/blog/item/9d3ce4f3eb4a43cc0a46e0df.html
===============================================
===============================================
完美解决IIS服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'-没有注册类别
发表日期:2008年9月21日 出处:http://www.htbenet.net 作者:北大青鸟 编辑:machao 有445位读者读过此文 【字体:大 中 小 】
现象:
浏览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了一些资料,终于解决了,希望对你有帮助。
========= 以下部分是网上重新找的资料 (如果执行上面步骤仍然不行,请继续) ==============================
1. 系统开始菜单里 点 运行 输入:
regsvr32 jscript.dll (注:这个命令修复java脚本相关的动态链接库)
重新点运行 输入:
regsvr32 vbscript.dll (注:这个命令修复vb脚本相关的动态链接库)
2.
微软 的关于MS DTC 无法安装的解决办法的文章:
如何在运行 Windows XP 的计算机上重新安装
Microsoft 分布式事务处理协调器
http://support.microsoft.com/default.aspx?scid=kb%3Bzh-cn%3B891801
==========================
将步骤摘抄到这里:
==========================
本文介绍如何在运行
Microsoft Windows XP 的计算机上重新安装
Microsoft 分布式事务处理协调器 (MS DTC)。
更多信息
一般而言,在运行 Windows XP 或更高版本的计算机上不必重新安装
Microsoft 分布式事务处理协调器 (Msdtc.exe)。如果使用较早的操作系统,在安装诸如
Microsoft SQL Server 6.5 的软件后,可能必须重新安装 MS DTC,因为此软件会使用其包含的版本覆盖 MS DTC 二进制文件。重新安装正确版本的 Msdtc.exe 可以还原二进制文件。在 Windows XP 和更高版本中,Windows 文件保护 (WFP) 功能可确保当前系统二进制文件不被替换。
但是,如果必须在运行 Windows XP 的计算机上重新安装 MS DTC,请使用下列过程。
警告:如果使用下列步骤,则所有未完成的事务都将丢失。确保在执行下列步骤之前,没有活动的事务。
警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统。
Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。 1. 在“管理工具”中,打开“服务”,然后停止所有服务。
2. 在“启动类型”列中,除下表中的服务以外,将所有其他服务的启动类型更改为“手动”。
注意:建议您记下所更改的服务,以便可以在步骤 7 中正确还原这些值。 ? Alerter
? COM+ Event System
? Computer Browser
? Distributed Link Tracking Client
? DNS Client
? Event Log
? IPSEC Services
? Logical Disk Manager
? Messenger
? Net Logon
? NT LM Security Support Provider
? Network Connections
? Plug and Play
? Remote Procedure Call (RPC)
? Remote Procedure Call (RPC) Locator
? Removable Storage
? Security Accounts Manager
? Server
? System Event Notification
? Task Scheduler
? TCP/IP NetBIOS Helper
? Windows Management Instrumentation
? Windows Management Instrumentation Driver Extensions
? Windows Time
? Workstation
3. 关闭“服务”,然后重新启动计算机。
4. 在命令提示符下,键入以下命令:
%WINDIR%\System32\msdtc.exe -uninstall
5. 启动注册表编辑器,如果存在下列注册表项则将其删除: ? HKEY_CLASSES_ROOT\CID
? HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
? HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSDTC
? HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MSDTC
? HKEY_LOCAL_MACHINE\Software\
Microsoft \MSDTC
6. 在命令提示符下,键入 %WINDIR%\System32\msdtc.exe -install。
7. 等待磁盘活动停止,然后将所更改的服务的启动类型还原为其原始值。
8. 在注册表中,创建以下注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft \MSDTC\XADLL
9. 在命令提示符下,键入 regsvr32 mtxoci.dll。
您将收到一条表明 Mtxoci.dll 中的 DllRegisterServer 已成功的消息。单击“确定”关闭该消息。
10. 重新启动计算机。
11. 在命令提示符下,键入 %WINDIR%\System32\msdtc.exe -resetlog。
=======================================================================================
到这里MS DTC 已经安装成功 重新运行msdtc -resetlog 和解决办法的步骤2
本文出自 51CTO.COM技术博客