0

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

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

所以现在,我需要调试服务。在四处搜索之后,我认为附加到流程可能是一个好方法。但是,在我同事的机器上,重启服务太快了,以至于我无法停止它并单击Debug->Attach to Process->select_exe,说实话,它根本没有停止在OnStart函数处,这很奇怪。 ..

WCF 作为 Windows 服务托管。

任何人都可以从您的经验和知识中给我任何想法或提示吗?或者您认为在我的情况下可能有用的任何其他方法。

任何想法表示赞赏。太谢谢了。=)

4

2 回答 2

1

修改服务代码,使其检测到它正在使用Environment.UserInteractive属性从调试器运行,或者只是处于调试模式 ( #ifdef DEBUG)(而不是发布),然后将程序作为控制台应用程序而不是服务启动。

例如:

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

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

于 2013-10-31T20:19:21.457 回答
0

这个 WCF 服务是如何托管的?Web 服务、Windows 服务、控制台应用程序等?无论如何,您都可以在 VS 中调试该应用程序并让您的应用程序命中它。对于 Windows 服务,您将不得不稍微更改代码以进行调试。

于 2013-10-31T19:53:19.340 回答