背景:
当我们将一个webservice程序编译好之后,将会在IIS上发布这个webservice。我们可以在网页中浏览这个webservice并可以点击一些方法,当方法的参数为基元类型(比如string,int,当参数为一个对象时就不是基元类型)时,网页上会提供一些输入框给我们输出参数,点击调用按钮,当我们在程序的该方法入口打了断点,这个时候就可以进入断点调试了。
问题:
上述我们的调试是在本机上由自己手动点击调用按钮时进的方法入口。而一般用到了webservice的时候基本就是提供了系统与系统之间的集成,所以这些挂起方法的应用场景也应该是由外部程序进行调用触发的。这时候我们怎么调试这些接口呢?
解决方法(VS2015):
在webservice程序集上右键属性,选择“Web”,有一栏“服务器”,“服务器”下方有一个下拉框可供选择,依次是“IIS Express”,“本地IIS”,“外部主机”,默认选择的是“IIS Express”。当我们在本地调试的时候使用“IIS Express”。当想调试外部程序调用的时候,选择“本地IIS”,然后创建虚拟目录,这个选项是什么意思呢?就是VS模拟一个IIS,然后创建一个虚拟目录挂在模拟的IIS上。这时候我们在真正的IIS上没有挂这个webservice,也没有在VS里面将该服务运行起来,但是我们依然可以在浏览器中访问该服务。当能访问该服务之后,我们在客户端程序的程序集上添加web引用,将webservice的引用添加到客户端程序中。这时候我们可以将客户端程序启动起来,然后将服务端程序启动为调试状态,这时候点击客户端的调用按钮则可以进入到服务端断点中了,这样我们就可以愉快的调试外部程序调用接口了。