我有一个powershell脚本,可以从SSRS中提取报告,并将这些报告打包/聚合为Excel工作簿中的工作表。
最近,该脚本开始抛出以下内容:
“TerminatingError(New-Object):”异常调用“.ctor”带有“0”参数:“创建窗口句柄时出错。”“
尝试执行时:
$rv = New-Object Microsoft.Reporting.WinForms.ReportViewer
在一个函数中。
同样,这是最近发生的事情。我无法确定发生了什么变化。
该脚本执行几百次调用以创建ReportViewer。这些成功了。
当我从PowerShell ISE运行脚本时,我看到上面抛出的异常一次。每次运行脚本时,它都出现在相同的位置(相对于创建ReportViewer的几百次调用并获取SSRS报告)。但是,剩余的调用(在一次失败之后)创建新的ReportViewer对象成功。只有一份报告无法撤回。 ($ ErrorActionPreference设置为“Continue”)。
当我通过启用了“以最高权限运行”的任务计划程序执行脚本(在相同的管理员用户凭据下)时,行为会有所不同。异常发生在同一位置(相对于创建ReportViewer和获取SSRS报告的几百次调用),但此后每次调用以创建ReportViewer对象并提取报告都会失败。在最初的失败之后,所有连续尝试拉取报告都没有被拉出,而是一次报告失败。
我尝试过增加内存到脚本等内容。我正在努力删除变量和垃圾收集。我不确定1)为什么在先前成功多次之后对新对象cmdlet的调用在一致点失败,以及2)在ISE环境中运行时不确定行为是否不同(在相同凭据下)而不是将脚本作为计划任务运行。
PS>TerminatingError(New-Object): "Exception calling ".ctor" with "0" argument(s): "Error creating window handle.""
New-Object : Exception calling ".ctor" with "0" argument(s): "Error creating window handle."
At C:\ReportDistribution\SSRSDistributeProd.ps1:36 char:9
+ $rv = New-Object Microsoft.Reporting.WinForms.ReportViewer;
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [New-Object], MethodInvocationException
+ FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand