今天将做好的RemotingObject部署到IIS上,发觉无法调用相关对象和方法。
在确定了相关DLL和配置文件都没有出现问题之后,尝试使用IIS发布一个网站,发觉网站也无法访问,上网搜索后,在百度找到解决方案,整理如下:
第一部分:
1、右键我的电脑--管理--本地用户和组,给IUSR_机器名和IWAM_机器名两个用户设置密码,要一样。
2、开始--运行--打cmd,
2.1、cd c:/Inetpub/Adminscripts(系统盘),
2.2、cscript.exe adsutil.vbs set w3svc/wamuserpass 你的密码,
2.3、cscript.exe adsutil.vbs set w3svc/anonymoususerpass 你的密码 看一下,行了没有?如果还不行,那么运行cscript.exe synciwam.vbs -v,如果没有报错,即表示可以了。否则进入第二部分。
第二部分:
1、进入组件服务【控制面板->管理工具->组件服务】,查看组件服务/计算机/我的电脑/COM+应用程序,结果将会报错“COM+ 无法与 Microsoft 分布式事务协调程序交谈”,无法查看里面的对象。
2、进入事件查看器【控制面板->管理工具->事件查看器】,发现msdtc服务没有正常启动,这步其实不明确,因为msdtc有很多个,所以可以让跳过。
3、删除注册表中的键:
• HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSDTC
• HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSDTC
• HKEY_CLASSES_ROOTCID
4、cmd中,停止MSDTC服务:net stop msdtc
5、cmd中,卸载MSDTC服务:msdtc -uninstall
6、cmd中,重新安装MSDTC服务:msdtc -install
7、确认在事件查看器中msdtc服务已经正常启动[这步很关键,如果没有,重新启动下电脑看看] ,这步骤也可以跳过,直接重启就可以了。
8、重新设置IIS的IWAM账号密码。[第一部分中步骤2]
9、同步IIS metabase中IWAM_MYSERVER的密码,在CMD中:c:inetputadminscripts>adsutil set w3svc/wamuserpass "yourpassword"
10、同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:c:inetputadminscripts>cscript synciwam.vbs -v
到10步,结果如果把报错:error:8004e00f,则进入第三部分。
第三部分:
1、检查你的DTC服务(全名:Distributed Transaction Coordinator)是否可以正常启动, 如果正常的话请你跳过此步骤;如果出错,无法正常启动,请在开始菜单的运行中 运行cmd,执行msdtc -resetlog 以创建日志文件。重起机器,检查IIS是否可以正常使用,若不行继续。
2、分别在CMD下执行以下命令【这是三行命令,一行一行执行】:
cd/ %windir%/system32/inetsrv
rundll32 wamreg.dll, CreateIISPackage
regsvr32 asptxn.dll
到这步骤,远程对象终于可以调用了=。=