如何在cbuilder中调试soap 的web server,特别是那些写到iis中的dll,就是以isapi,nsapi编写的服务程序。在http://dn.codegear.com/article/23024有说明。
下面简要的用中文描述一下。
1.打开run|parameters ,填入iis的执行文件:”c:\windows\system32\inetsrv\inetinfo.exe“,输入参数-e w3svc。图如下:
2.关闭iis中的管理网站,连同smtp,ftp全停掉,
同时在iis中点开网站虚拟目录属性,把 程序保护 下拉栏中选择 “low”。
3.打开管理工具的服务,停掉服务列表中的iis 服务。
4.打开管理工具的”本地安全策略“,在”用户权利指派“中,选择以操作系统方式,添加当前用户名。如图:
5.修改iis在注册表中的服务项,添加注册表如下的内容:(粘贴出新建一个reg文件后双击处理)
注意:iis要在自己的系统文件夹下,如果不是windows则改成自己的机子一样路径。
regedit4
[hkey_classes_root\appid\{61738644-f196-11d0-9953-00c04fd919c1}]
"localservice"=-
"runas"=-
[hkey_classes_root\appid\{9f0bd3a0-ec01-11d0-a6a0-00a0c922e752}]
"localservice"=-
"runas"=-
[hkey_classes_root\appid\{a9e69610-b80d-11d0-b9b9-00a0c922e750}]
"localservice"=-
"runas"="interactive user"
[hkey_classes_root\clsid\{61738644-f196-11d0-9953-00c04fd919c1}]
"localservice"=-
[hkey_classes_root\clsid\{9f0bd3a0-ec01-11d0-a6a0-00a0c922e752}]
"localservice"=-
[hkey_classes_root\clsid\{a9e69610-b80d-11d0-b9b9-00a0c922e750}]
"localservice"=-
[hkey_classes_root\clsid\{61738644-f196-11d0-9953-00c04fd919c1}\localserver32]
""="c:\\windows\\system32\\inetsrv\\inetinfo.exe -e w3svc"
[hkey_classes_root\clsid\{9f0bd3a0-ec01-11d0-a6a0-00a0c922e752}\localserver32]
""="c:\\windows\\system32\\inetsrv\\inetinfo.exe -e w3svc"
[hkey_classes_root\clsid\{a9e69610-b80d-11d0-b9b9-00a0c922e750}\localserver32]
""="c:\\windows\\system32\\inetsrv\\inetinfo.exe -e w3svc"
[hkey_local_machine\system\currentcontrolset\services\iisadmin]
"start"=dword:3
[hkey_local_machine\system\currentcontrolset\services\msdtc]
"start"=dword:3
[hkey_local_machine\system\currentcontrolset\services\w3svc]
"start"=dword:3
[hkey_classes_root\appid\{61738644-f196-11d0-9953-00c04fd919c1}]
"localservice"="iisadmin"
"runas"=-
[hkey_classes_root\appid\{9f0bd3a0-ec01-11d0-a6a0-00a0c922e752}]
"localservice"="iisadmin"
"runas"=-
[hkey_classes_root\appid\{a9e69610-b80d-11d0-b9b9-00a0c922e750}]
"localservice"="iisadmin"
"runas"=-
[hkey_classes_root\clsid\{61738644-f196-11d0-9953-00c04fd919c1}]
"localservice"="iisadmin"
[hkey_classes_root\clsid\{9f0bd3a0-ec01-11d0-a6a0-00a0c922e752}]
"localservice"="iisadmin"
[hkey_classes_root\clsid\{a9e69610-b80d-11d0-b9b9-00a0c922e750}]
"localservice"="iisadmin"
6.编写soap web server并把该程序生成的路径放在iis中的虚拟目录中,在程序中
设置断点,run!
7.到ie中输入http:\\127.0.0.1\test_websoap\xxx.dll,在ide中就被激活运行。
如图:
注意:
在调试中有要发现程序已在运行的话,则打开任务管理器中杀掉dllhost.exe,
关掉所有的dllhost。exe。如果还关不完(关了又出来了),则看看iis中是否启动了,把它再停掉。