Web服务操作中的控制台输出可以在客户端控制台上显示吗?
我有一个调用Web服务方法的控制台应用程序。Web服务操作中的控制台输出可以在客户端控制台上显示吗?
在web服务方法中,我使用的是System.Console.WriteLine
,但它被忽略。
如何从我的Web服务方法中向控制台应用程序提供反馈?
另一种方法是让Web服务'告诉'控制台应用程序在做什么;保持运行日志。
可能不是一个魅力的解决方案,但它是最好的选择,谢谢! – 2009-08-18 08:06:11
您不能因为System.Console.WriteLine
将写入服务器控制台,而您希望在客户端控制台上输出。
例如,您可以使用类似于SixPack library或Log4Net中的日志框架将日志消息写入文件。
为了能够在客户端控制台上编写代码,您需要将您的Console.WriteLine
语句放在客户端应用程序中。
您的Web服务托管在哪里? 我想Web服务在IIS上,所以它是一个独立的过程。它可以安装在同一台机器上,也可以安装在不同的机器上,但以任何方式安装在不同的进程中,并且不能写入客户端应用程序的控制台。它可以写入日志文件,例如,使用system.diagnostics.trace或Log4Net开源日志记录工具
我建议您从本文开始:ASP.NET Quickstart Tutorials: Monitoring Your Application了解您必须记录和监视ASPX Web服务的选择
这是一个稍微不寻常的事情,尝试做。如果你想记录服务器的活动,那么我会使用Trace.WriteLine()
来写入一个日志文件。
但是,如果要查看客户端上的服务器日志信息,则可以让服务器登录到Web服务器上的字符串变量,然后使用Web方法将日志信息检索到客户端。然后您可以在控制台窗口中写出它。这需要您经常拨打GetLog()
网络方法,但您会得到您想要的结果。这可能会带来很多问题,比如在一次调用中请求大量的日志信息。
您也可以考虑使用System.Diagnostics
中的EventLog支持来创建Web服务已完成的日志。
当我们在我们的开发服务器上测试我们的Web服务时,我们经常使用Visual Studio远程调试器来连接远程运行的Web服务代码,并使用Debug.WriteLine
调用来跟踪发生的事情。不是推荐用于实时服务器的东西,而是开发和测试中经常需要更多细节的东西,这是一种有价值的技术。
您可以使用Asyn Callback来调用webservice。这样客户可以发起反馈请求。我不相信我们可以相反。
你会发现How to: Implement an Asynchronous Web Service Client Using the Callback Technique
上ASYN回调更多信息,最好的办法可能是有Web方法返回与任何值你想打印到控制台的字符串。 Console.WriteLine然后需要从控制台应用程序端发生。请记住,您也可以从Web方法返回对象/类/ Xml,因此您不仅限于一个字符串。
如果您有权访问运行Web服务的Web服务器,则其他选项才会真正起作用。但是,您可以通过让Web服务将日志写入服务器上的文本文件来处理它。然后,相应的IUSR_CompName需要写入计算机上的文件夹。
你怎么称呼网络服务?一些示例代码将有助于理解您的问题。 – 2009-08-18 07:53:55
您不能将此方法用于webmethod。 Web方法在服务器端执行。但是你可能会返回字符串。 – adatapost 2009-08-18 07:54:26
是否无法以某种方式将数据刷新回客户端? – 2009-08-18 07:57:20