可以在客户端控制台上看到Web服务操作中的控制台输出吗?

时间:2009-08-18 07:48:38

标签: c# web-services console

我有一个调用Web服务方法的控制台应用程序。

在Web服务方法中,我使用System.Console.WriteLine,但它被忽略了。

如何从我的Web服务方法中向控制台应用程序提供反馈?

7 个答案:

答案 0 :(得分:11)

您不能因为System.Console.WriteLine将写入服务器控制台,而您希望在客户端控制台上输出。

您可以使用SixPack libraryLog4Net中的日志记录框架将日志记录消息写入文件。

为了能够在客户端控制台上编写,您需要将Console.WriteLine语句放在客户端应用程序中。

答案 1 :(得分:1)

另一种方法是让Web服务“告诉”控制台应用程序正在做什么;保持正在运行的日志。

答案 2 :(得分:0)

托管您的Web服务的位置? 我认为Web服务在IIS上,因此它是一个单独的过程。它可以安装在同一台机器上或不同的机器上,但无论如何它都是不同的进程,它无法写入客户端应用程序的控制台。它可以写入日志文件,例如,使用system.diagnostics.trace或Log4Net开源日志记录工具

我建议您从这篇文章开始:ASP.NET Quickstart Tutorials: Monitoring Your Application了解您需要记录和监控ASPX Web服务的选择

答案 3 :(得分:0)

尝试这样做有点不寻常。如果要记录服务器的活动,那么我将使用Trace.WriteLine()写入日志文件。

但是,如果要在客户端上查看服务器日志信息,则可以让服务器在Web服务器上记录到字符串变量,然后使用GetLog() Web方法将日志信息检索到客户端。然后,您可以在控制台窗口中将其写出。这需要您经常调用GetLog()网络方法,但您将获得所需的结果。这可能会有很多问题,例如在一次通话中请求大量的日志信息。

答案 4 :(得分:0)

您还可以考虑使用System.Diagnostics中的EventLog支持来创建Web服务已完成的日志。

当我们在开发服务器上测试我们的Web服务时,我们经常使用Visual Studio远程调试器连接远程运行的Web服务代码,并使用Debug.WriteLine调用来跟踪发生的情况。不是推荐用于实时服务器的东西,但对于通常需要更多细节的开发和测试来说,它是一种有价值的技术。

答案 5 :(得分:0)

您可以使用Asyn Callback来调用webservice。这样客户端就可以发起反馈请求。我不相信我们可以实现相反的目标。

您可以在How to: Implement an Asynchronous Web Service Client Using the Callback Technique

上找到有关Asyn回调的更多信息

答案 6 :(得分:0)

最好的选择可能是让Web方法返回一个字符串,其中包含您要打印到控制台的任何值。然后,Console.WriteLine需要从控制台应用程序端进行。请记住,您也可以从Web方法返回Objects / Classes / Xml,因此您不限于单个字符串。

只有在您可以访问运行Web Service的Web Server时,另一个选项才能正常工作。但是,您可以通过让Web Service将日志写入服务器上的文本文件来实现它。相应的IUSR_CompName需要对计算机上的文件夹进行写访问。