Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何调试调用WCF服务的程序,_C#_Wcf_Service_Message Queue_Visual Studio Debugging - Fatal编程技术网

C# 如何调试调用WCF服务的程序,

C# 如何调试调用WCF服务的程序,,c#,wcf,service,message-queue,visual-studio-debugging,C#,Wcf,Service,Message Queue,Visual Studio Debugging,我正在使用VisualStudio2010。我有一个非常简单的asp.net网页,我浏览并上传一个xml文件,现在我有两个文本框。在左框中,我显示原始xml内容,然后,我想调用WCF服务,使用xml作为输入,并在右框中显示返回的结果 现在,我不断得到一个错误“消息服务队列不可用”。我已经为谷歌搜索的消息队列服务设置了系统帐户 现在,我需要调试服务。在四处搜索之后,我认为附加到流程可能是一个好方法。然而,在我的collegue的机器中,重新启动服务的速度如此之快,以至于我无法停止它并单击Debug

我正在使用VisualStudio2010。我有一个非常简单的asp.net网页,我浏览并上传一个xml文件,现在我有两个文本框。在左框中,我显示原始xml内容,然后,我想调用WCF服务,使用xml作为输入,并在右框中显示返回的结果

现在,我不断得到一个错误“消息服务队列不可用”。我已经为谷歌搜索的消息队列服务设置了系统帐户

现在,我需要调试服务。在四处搜索之后,我认为附加到流程可能是一个好方法。然而,在我的collegue的机器中,重新启动服务的速度如此之快,以至于我无法停止它并单击Debug->Attach to Process->select_exe,老实说,它根本不停止OnStart函数,这很奇怪

WCF作为windows服务托管

有人能从你的经验和知识中给我一些想法或提示吗?或者任何你认为对我有利的方法


欢迎提出任何意见。非常感谢

这个WCF服务是如何托管的?Web服务、Windows服务、控制台应用程序等?在任何情况下,您都可以在VS中调试该应用程序,并让您的应用程序点击它。对于Windows服务,您必须稍微更改代码以进行调试。

修改服务代码,以便它检测到它正在使用调试器运行,或者只是处于调试模式(
#ifdef debug
)(而不是释放),然后将程序作为控制台应用程序而不是服务启动

例如:

    static void Main()
    {
#ifdef DEBUG
        Application.Run();
#else
        ServiceBase service = new SampleService(); 
        ServiceBase.Run(service); 
#endif
    }

这将允许您在Visual Studio的一个实例中设置断点并单步执行代码,而在另一个实例中运行客户端代码。

如果这是一个由您控制的服务,只需在其开头放入一个调试器。Launch()即可附加到该服务it@Abhinav我在OnStart函数中设置了一个断点,我尝试重新启动该服务,以便该服务停止后再启动,而不是在onstart功能处停止。它作为windows服务托管谢谢。另外,还有一个与测试相关的问题:存根、moq和摩尔是否与我的问题有关,我是否应该花时间为我当前的项目探索它?这就是我所说的变化。这样你就可以摆脱SCM了。@ChrisF♦ 非常感谢。另外,还有一个与测试相关的问题:存根、moq和摩尔是否与我的问题有关,我是否应该花时间为我当前的项目探索它?@ChrisF♦ 由于我一次只浏览和运行一个xml文件,这是否意味着我正在进行单元测试,并花时间研究那些存根、moq和MOLE?请@user2751691就此提出一个新问题。