使用VS.NET进行Web服务的开发有很多可能的情形:
如果你正在自己开发Web服务,那么就能够使用一个缺省的页面来调试它,在使用浏览器显示ASMX文件的时候你会看到这个缺省的页面。如果你正在开发一个使用外部服务的应用程序,你的选择就会很有限。由于不太可能通过远程服务来获取调试信息,所以大多数问题都无法被调试出来。
如果你正在同时编写服务和应用程序,那么你的调试选择就要多一些——而且更加复杂。你需要测试,可能还要调试服务本身以及应用程序同Web服务之间的接口。最好的方法是从应用程序来进入服务。这就是我们会在本文里探讨的例子,因为这一内容涵盖了最广泛的、可能会出现的问题。
我们准备创建一个简单的Web服务和一个使用这项服务Windows窗体应用程序。在开始之前,先让我们做一些清理的工作。如果你正在一台远程服务器上运行这个例子,那么由于会有很多XML
Web服务,所以你需要在服务器上加载远程调试程序(Remote Debugging)。用户需要拥有服务器管理员(Administrator)的权限。由于我们会在一个Windows窗体应用程序里使用这个Web服务,所以你应该在服务器上加入ASP.NET的工作进程(Worker
Process)。这就需要在Windows 2000上安装aspnet_wp.exe,或者在Windows 2003上安装w3wp.exe。现在我们就可以开始调试的测试了。
要开始工作,就要首先生成一个简单的服务,叫做Debug Services(调试服务),并带有TestDebug类和一个方法GetTestResult:
public string GetTestResult()
{
string TestResult = "";
TestResult = System.AppDomain.CurrentDomain.ToString();
return TestResult;
}
如果你在字符串声明(string declaration)处设置一个断点(breadpoint)并按[F5]键(在把新文件设置为起始页之后),那么Visual
Studio就会在浏览器里加载用于这项服务的示例页面。在你选择GetTestResult服务并点击调用(Invoke)按纽(没有带参数)之后,你就会进入调试模式,就如同ASP.NET的Web窗体一样。