Stepping Into an XML Web Service
In Visual Studio .NET, you can step into an XML Web service as though you were stepping into an ordinary function call. Stepping into an XML Web service is possible when both the client and the service are written in managed code (Visual Basic, C#, or Managed Extensions for C++). Stepping occurs automatically across threads, processes, and even machines.
When you step into an XML Web service call, the debugger automatically attaches to the ASP.NET worker process (aspnet_wp.exe for IIS5.0 and IIS 5.1 on Windows 2000 and Windows XP or w3wp.exe on IIS6 on Windows Server 2003). The ASP.NET worker process can be on the local machine or on a remote machine.
Note To attach to ASP.NET worker process, you must be an Administrator on the server where the process is running. On the client machine, you be in the Debugger Users group or an Administrator. (See Adding Debugger Users.) If the XML Web service is running on the client, you must be an Administrator on the client.
If the ASP.NET worker process is running on an RTM machine, the ASP.NET worker process must run under a user that is a member of Debugger Users on that machine.
If you want to debug both managed and unmanaged code, both types of debugging must be enabled in your project. You can enable unmanaged debugging by choosing the Enable Unmanaged Debugging option in the <Project> Properties dialog box (in the Configuration Properties folder, Debugging category).
When the execution breaks in the XML Web service, you can view a merged callstack that contains calls from both the client and the XML Web service. To see all the information, you may need to enable the display of calls between threads.
To display calls between threads
- Right-click the Call Stack window.
- From the shortcut menu, choose Include Calls To/From Other Threads.
Once you have stepped into the XML Web service, you can use all the ordinary execution commands such as Step and Continue. At the end of the XML Web service call, you can step out and back into the client that called the XML Web service. When you step out of an XML Web service, the debugger remains attached to the ASP.NET worker process. The debugger detaches from the ASP.NET worker process when you end the debugging session (by choosing Stop Debugging from the Debug menu, for example). You can manually detach the ASP.NET worker process using the Processes dialog box. (For details, see Detaching Programs.)