如何在VS 2010中调试.NET Web服务初始化代码?

时间:2012-01-20 15:51:49

标签: asp.net .net wcf iis

上下文:在XP中的本地IIS上部署.NET Web服务。 VS 2010用于调试Web服务代码。

问题: 我熟悉通过将VS附加到ASP.NET工作进程来调试托管的Web服务。如果被调试的代码部分不是初始化代码(例如webservice中的构造函数),则此方法有效。创建ASP NET工作进程时,它会调用Web服务中的构造函数。因此,当我们从VS附加到ASP NET工作进程时,构造函数已经被调用,因此无法进行调试。

如何在Web服务到达Web服务中的构造函数之前,如何附加到ASPNET流程并调试Web服务?

2 个答案:

答案 0 :(得分:3)

几乎是this的副本。 你可以插入一个

Debugger.Launch();
Web服务构造函数中的

指令,提示调试程序进行附加。请参阅MSDN

enter image description here

答案 1 :(得分:0)

这可能不是最佳选择,但它是我遇到类似问题时能够找到的唯一解决方案。在构造函数中放置一个Thread.Sleep(xxxx)并尝试竞争以击败时钟并在完成初始化之前获得附加。你需要注意不要将睡眠设置得太高,因为如果没有在一定的秒数内完成初始化,服务就会停止。 (当你在完成初始化函数的步骤之前决定杀死你的服务时,这也是一种痛苦,因为它没有足够快地返回。)