我可能会尝试一个无效的方法,所以我接受任何建议。

我跑了一系列的3个脚本,每个IIS服务器上做的网站进行分析,并且我跑他们对几百服务器。我验证的概念阶段,这样做的启动工作进程,所以我可以并行运行,并更快地完成了很多。这些脚本主要是在附近等WMI和文件系统来收集和返回数据,所以并行等待使得有很大的意义。

但我不能让我的工作日志。我在管道中的数据行的脚本,并尝试发送log4net的$记录仪作为一个参数,而是新的PowerShell进程不能用它做任何事情。以下是我已经试过: (在调用脚本)             $作业+ =启动工作-InputObject $应用-FilePath $命令-Name $ app.Name -ArgumentList $登录

(在调用的脚本)

param ([parameter(Mandatory=$false,ValueFromPipeline=$true)]  
$object, 
[parameter(Position=0)] 
$Logger) 

(结果)

Unable to find type [log4net.ThreadContext]: make sure that the assembly containing this type is loaded.

我试过在调用的脚本加载log4net.dll的各种口味。在的结果:

Method invocation failed because [Deserialized.log4net.Core.LogImpl] doesn't contain a method named 'Info'

我也试过只是在调用的脚本流程中实例化一个新的$记录器,以及在做一些日志作用的结果,但不准确。 20个过程中,我只是从他们那里得到的9一些消息,并且从没有所有消息。

不记录是不是一个选项。这项工作是复杂的。运行该脚本的每个实例不同的日志可能是可行的,但它会是一个讨厌,讨厌讨厌。大多数情况下,我只图我做的事情不知情。

有帮助吗?

解决方案

每个催生PowerShell进程是它自己的存储空间。没有什么是他们之间共享,这样问log4net的安全操作的文件系统日志中多次产生的作业是一个失败。数据库或事件日志记录把手的安全问题,并适当地解决这个问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top