2009-08-18 36 views
0

我有一个调用Web服务方法的控制台应用程序。Web服务操作中的控制台输出可以在客户端控制台上显示吗?

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

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

+2

你怎么称呼网络服务?一些示例代码将有助于理解您的问题。 – 2009-08-18 07:53:55

+0

您不能将此方法用于webmethod。 Web方法在服务器端执行。但是你可能会返回字符串。 – adatapost 2009-08-18 07:54:26

+0

是否无法以某种方式将数据刷新回客户端? – 2009-08-18 07:57:20

回答

1

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

+0

可能不是一个魅力的解决方案,但它是最好的选择,谢谢! – 2009-08-18 08:06:11

11

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

例如,您可以使用类似于SixPack libraryLog4Net中的日志框架将日志消息写入文件。

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

0

您的Web服务托管在哪里? 我想Web服务在IIS上,所以它是一个独立的过程。它可以安装在同一台机器上,也可以安装在不同的机器上,但以任何方式安装在不同的进程中,并且不能写入客户端应用程序的控制台。它可以写入日志文件,例如,使用system.diagnostics.trace或Log4Net开源日志记录工具

我建议您从本文开始:ASP.NET Quickstart Tutorials: Monitoring Your Application了解您必须记录和监视ASPX Web服务的选择

0

这是一个稍微不寻常的事情,尝试做。如果你想记录服务器的活动,那么我会使用Trace.WriteLine()来写入一个日志文件。

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

0

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

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

0

上ASYN回调更多信息,最好的办法可能是有Web方法返回与任何值你想打印到控制台的字符串。 Console.WriteLine然后需要从控制台应用程序端发生。请记住,您也可以从Web方法返回对象/类/ Xml,因此您不仅限于一个字符串。

如果您有权访问运行Web服务的Web服务器,则其他选项才会真正起作用。但是,您可以通过让Web服务将日志写入服务器上的文本文件来处理它。然后,相应的IUSR_CompName需要写入计算机上的文件夹。