在我的项目中,我创建了一个具有Web服务的Web应用程序。在同一解决方案中,我添加了另一个Web应用程序。我正在使用此应用程序中的Web服务。我使用Web引用选项添加了Web引用添加了Web引用。我想调试生成的代理类(当我添加Web引用时)。我在代理类中放了一个调试器,但它没有用。然后我复制了代理类并在客户端web应用程序中创建了一个具有相同相同和相同内容的新类,并删除了Web引用。但我仍然无法调试代理类。我该如何调试代理类? 请帮忙。
答案 0 :(得分:19)
尝试从生成的代码中删除[DebuggerStepThroughAttribute()]
答案 1 :(得分:7)
在Visual Studio 2010中,您可以设置断点(您显然已经尝试过)。但是,通过右键单击您的应用程序选择调试并单击new start new instance来尝试运行Web服务解决方案。
调试刚好低于设置为启动项目选项
答案 2 :(得分:6)
我通常这样做的方式是在本地托管IIS中的客户端应用程序和webservice托管应用程序。您应该有两个应用程序虚拟目录。为每个应用程序使用单独的应用程序池。当从客户端应用程序向Web服务应用程序发出成功请求时,应该有两个工作进程(w3wp.exe进程)。您应该能够将调试器附加到正确的w3wp进程以进行调试。
答案 3 :(得分:4)
Visual Studio 2008 \ 2010:
<compilation debug="true">
答案 4 :(得分:3)
你试过这个功能吗? System.Diagnostics.Debugger.Launch();
使用上面的函数代替调试器,这可能会解决您的问题。
例如你想调试一个函数test()
public bool test()
{
System.Diagnostics.Debugger.Launch();
//..put it on top of the function
}
答案 5 :(得分:2)
在进行Web服务调用之前设置断点,然后Step Into
(F 11)Web服务调用本身。进入Web服务后,您可以在任何地方设置更多断点。
答案 6 :(得分:2)
作为其他答案的补充,您也可以右键单击解决方案并选择“设置启动项目...”
在Common Properties / Startup Project下,选择“Multiple startup projects:”的单选选项,然后选择Action“Start”。
现在调试应该在每次运行时都在两个项目中启动调试器。
答案 7 :(得分:1)
添加您的代码(在c#中):
System.Diagnostics.Debugger.Launch();
检查您是否将项目构建为“解决方案配置:调试”。