C# Web服务操作中的控制台输出能否在客户端控制台上可见?
我有一个控制台应用程序正在调用web服务方法 在web服务方法中,我使用的是C# Web服务操作中的控制台输出能否在客户端控制台上可见?,c#,web-services,console,C#,Web Services,Console,我有一个控制台应用程序正在调用web服务方法 在web服务方法中,我使用的是System.Console.WriteLine,但它被忽略了 如何从web服务方法中向控制台应用程序提供反馈?您不能,因为System.console.WriteLine将写入服务器控制台,而您希望在客户端控制台上输出 您可以使用类似中的日志框架,或者将日志消息写入文件 为了能够在客户端控制台上进行写操作,您需要将控制台.WriteLine语句放在客户端应用程序中。Web服务的托管位置? 我假设Web服务在IIS上,所
System.Console.WriteLine
,但它被忽略了
如何从web服务方法中向控制台应用程序提供反馈?您不能,因为
System.console.WriteLine
将写入服务器控制台,而您希望在客户端控制台上输出
您可以使用类似中的日志框架,或者将日志消息写入文件
为了能够在客户端控制台上进行写操作,您需要将
控制台.WriteLine
语句放在客户端应用程序中。Web服务的托管位置?
我假设Web服务在IIS上,所以它是一个单独的进程。它可以安装在同一台机器上,也可以安装在不同的机器上,但无论如何,它将是不同的进程,并且不能写入客户端应用程序的控制台。它可以写入日志文件,例如,使用system.diagnostics.trace或Log4Net开源日志记录工具
我建议您从这篇文章开始:要了解您必须记录和监视您的ASPX web服务的选择,另一种选择是让web服务“告诉”控制台应用程序它正在做什么;保持一个运行日志。这是一个稍微不寻常的尝试。如果您想记录服务器的活动,那么我将使用
Trace.WriteLine()
写入日志文件
但是,如果要查看客户端上的服务器日志信息,则可以让服务器登录到web服务器上的字符串变量,然后使用
GetLog()
web方法将日志信息检索到客户端。然后,您可以在控制台窗口中将其写入。这需要您非常频繁地调用GetLog()
web方法,但您会得到想要的结果。可能会有一大堆问题,例如在一个调用中请求大量的日志信息。 < P>您也可以考虑使用<代码> Stase.MaultLogy中的EngEnglog支持来创建Web服务所做的日志。
当我们在开发服务器上测试web服务时,我们经常使用Visual Studio远程调试器连接到远程运行的web服务代码,并使用
Debug.WriteLine
调用跟踪正在发生的事情。这不是一种推荐用于实时服务器的技术,但对于经常需要更多细节的开发和测试,这是一种值得采用的技术。您可以使用Asyn回调调用webservice。这样,客户机就可以发起反馈请求。我认为我们不可能实现相反的目标
您将在上找到有关Asyn回调的更多信息最好的选择可能是让Web方法返回一个字符串,其中包含您想要打印到控制台的任何值。然后需要从控制台应用程序端执行Console.WriteLine。请记住,您也可以从Web方法返回对象/类/Xml,因此您不限于单个字符串
另一个选项只有在您有权访问运行Web服务的Web服务器时才真正起作用。但是,您可以通过让Web服务将日志写入服务器上的文本文件来实现这一点。相应的IUSR_CompName需要对计算机上的文件夹进行写访问。如何调用web服务?一些示例代码有助于理解您的问题。您不能将此方法用于webmethod。Web方法在服务器端执行。但是,您可以返回字符串。是否无法以某种方式将数据刷新回客户端?web服务可以返回数据。服务上的
Console
与客户端上的Console
之间没有任何关系。这可能不是一个吸引人的解决方案,但它是最好的选择,谢谢!