0

我使用以下命令从 windows8 客户端 pc 跟踪 w2k8 服务器上的日志文件:

get-content "file" -wait

日志文件显示出来,它耐心地等待添加新行,但添加新行时永远不会出现。

它在 w2k3 服务器上运行良好,但在 w2k8 服务器上以某种方式拖尾不起作用。

日志文件从 C# 服务更新:

Trace.Listeners.Add(new TextWriterTraceListener(logFileName, "fileListener"));
Trace.WriteLine(....)

有人知道该怎么做吗?

4

1 回答 1

1

我使用 Trace 类在我的 WS08 系统上重现了这个问题。我尝试了 Trace.Flush() 和写入大量数据(100K),但都没有导致 get-content -wait 响应。

但是我确实找到了解决方法。您必须更新您的 C# 程序。(在试验时我得出的结论是 gc -wait 非常脆弱。)

$twtl= new-object diagnostics.TextWriterTraceListener "C:\temp\delme.trace",
                                                      "filelistener"
[diagnostics.trace]::Listeners.add($twtl)

# This sequence would result in gc -wait displaying output
[diagnostics.trace]::WriteLine("tracee messagee thingee")
[diagnostics.trace]::flush()
# Here I did file name completion such that c:\temp\delme.trace was in the 
#  completion list. 
# In other words I typed something like d and pressed tab
# And this worked every time 

# After searching for quite a while I finally found that 
#   get-itemproperty c:\temp\d*
# produced the same effect. The following sequence always worked:
# (without requiring a tab press)

[diagnostics.trace]::WriteLine("tracee messagee thingee")
[diagnostics.trace]::flush()
get-itemproperty c:\temp\d*

# To finish up
[diagnostics.trace]::Listeners.remove($twtl)
$twtl.close()
$twtl.dispose()

我认为某处存在错误。我建议在 Connect 网站上提交。

于 2013-07-06T02:32:22.913 回答