Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web服务操作中的控制台输出能否在客户端控制台上可见?_C#_Web Services_Console - Fatal编程技术网

C# Web服务操作中的控制台输出能否在客户端控制台上可见?

C# Web服务操作中的控制台输出能否在客户端控制台上可见?,c#,web-services,console,C#,Web Services,Console,我有一个控制台应用程序正在调用web服务方法 在web服务方法中,我使用的是System.Console.WriteLine,但它被忽略了 如何从web服务方法中向控制台应用程序提供反馈?您不能,因为System.console.WriteLine将写入服务器控制台,而您希望在客户端控制台上输出 您可以使用类似中的日志框架,或者将日志消息写入文件 为了能够在客户端控制台上进行写操作,您需要将控制台.WriteLine语句放在客户端应用程序中。Web服务的托管位置? 我假设Web服务在IIS上,所

我有一个控制台应用程序正在调用web服务方法

在web服务方法中,我使用的是
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
之间没有任何关系。这可能不是一个吸引人的解决方案,但它是最好的选择,谢谢!