Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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:Excel互操作中解决HRESULT:0x80010001(RPC#E#u调用#u被拒绝)?_C#_Excel_Wpf_Comexception - Fatal编程技术网

如何在C:Excel互操作中解决HRESULT:0x80010001(RPC#E#u调用#u被拒绝)?

如何在C:Excel互操作中解决HRESULT:0x80010001(RPC#E#u调用#u被拒绝)?,c#,excel,wpf,comexception,C#,Excel,Wpf,Comexception,我正在使用C#/WPF进行一个项目,我使用Microsoft.Office.Interop.Excel在多个Excel文件中读写 当我读取Excel文件时,有时当我读取第1382行时,有时是2218行时,我会随机面对这个错误 我的办公软件包被激活了。 我尝试使用: Thread.Sleep(100); 在foreach内部,但不起作用,例外情况仍然相同 请任何帮助,我在这一点上受阻,我没有找到任何解决方案 提前感谢,您是否安装了Cisco Webex Meetings?在花了太多时间(见下文)

我正在使用C#/WPF进行一个项目,我使用Microsoft.Office.Interop.Excel在多个Excel文件中读写

当我读取Excel文件时,有时当我读取第1382行时,有时是2218行时,我会随机面对这个错误

我的办公软件包被激活了。 我尝试使用:

Thread.Sleep(100);
在foreach内部,但不起作用,例外情况仍然相同

请任何帮助,我在这一点上受阻,我没有找到任何解决方案


提前感谢,

您是否安装了Cisco Webex Meetings?在花了太多时间(见下文)之后,我终于确定这是我的问题

在Excel中,这列在“加载项”下,如“生产力工具”、“Cisco WebEx LLC”、“C:\Program Files(x86)\WebEx\Plugins\ptwbxms64.dll”。对于我的破例,DLL的文件版本为3910.0.1910.3000,日期为2019-11-15,为1493240字节,SHA-256校验和为cb49aeafa37e5313907da5c42ff470db22ecde88fa7c4afc8ed59aae7c28d70a。Cisco Webex Meetings在版本39.10.4.5中报告为“最新”

我一直在Outlook中使用Webex功能,但不知道为什么它需要在Word、Excel等中单独启用

前期研究 (不完全是一个答案,但需要一个地方,我可以回答一些长度,可能编辑,因为我继续看这个,并允许其他人回答自己的评论…)

我在这里看到了一些类似的东西——使用一个使用ComObject Excel.Application的PowerShell脚本,并且几乎一年没有更改。在过去一周内开始出现相同的错误。无法一致地复制,但也无法完成复杂的确定性脚本,除非它在完成之前失败。相同的脚本(仍然)在另一台运行类似配置的机器上工作

我现在想我已经排除了任何Windows或Office更新。2个版本相同的系统,一个工作,另一个不工作。两者都是Windows 10 1909版本18363.535、O365 1911版本12228.20364 CTR,从2019-12-11起已完全修补

我的一个陈述现在随机失败的例子:

$wsUsers.Name = 'Users'
。。。其中,
$wsUsers
是新创建的Excel工作表

另一个常见故障点,
$hc
是一个范围(“标题列”):

第一条线(如果事情没有首先在别处中断)总是成功的。然而,第二条线路(现在)经常发生故障,并出现此错误

假设这与最近的更新无关,那么还有很多其他的建议

我确实尝试在受影响的设备上“在线修复”O365,但没有任何更改。我还完成了O365的卸载/重新安装,没有任何更改

下面是一个最小的测试用例:

#Requires -Version 5.0

Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'

$excel = New-Object -ComObject Excel.Application -Verbose:$false
try{
    try{
        $excel.Visible = $true
        $wb = $excel.Workbooks.Add()

        $i = 0
        try{
            for(; $i -le 1000; $i++){
                Write-Host "Ready1: $($excel.Ready)"
                $wsAbout = $wb.Worksheets[1]
                Write-Host "Ready2: $($excel.Ready)"
                $wsAbout.Name = "About $i"
            }
        }catch{
            Write-Host "Ready3: $($excel.Ready)"
            Write-Host "Failed at $i".
            throw $_
        }
    }finally{
        $wb.Close($false, [System.Reflection.Missing]::Value, [System.Reflection.Missing]::Value)
    }
}finally{
    $excel.Quit()
    [void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
}
在第一个系统上,在第一次迭代的某个地方(之前在同一个系统上工作过),这总是失败的。在第二个系统上,我不能让它失败

最典型的故障是:

Ready1: True
Ready2: True
Ready1: True
Ready3: True
Failed at 101 .
Call was rejected by callee. (Exception from HRESULT: 0x80010001 (RPC_E_CALL_REJECTED))
At ....ps1:16 char:17
+                 $wsAbout = $wb.Worksheets[1]
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], COMException
    + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
考虑另一个奇怪的错误:

Ready1: True
Ready2: True
Ready1: True
Ready2: True
Ready1: True
Ready2: True
Ready1: True
Ready3: True
Failed at 3 .
Cannot index into a null array.
At ....ps1:16 char:17
+                 $wsAbout = $wb.Worksheets[1]
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : NullArray
有人向我解释工作表如何在前3次迭代中存在,而不是在第4次迭代中存在


我已经花了太多时间研究这个了。计划下一步重新安装我的系统…

是否有可能安装了Cisco Webex Meetings?在花了太多时间(见下文)之后,我终于确定这是我的问题

在Excel中,这列在“加载项”下,如“生产力工具”、“Cisco WebEx LLC”、“C:\Program Files(x86)\WebEx\Plugins\ptwbxms64.dll”。对于我的破例,DLL的文件版本为3910.0.1910.3000,日期为2019-11-15,为1493240字节,SHA-256校验和为cb49aeafa37e5313907da5c42ff470db22ecde88fa7c4afc8ed59aae7c28d70a。Cisco Webex Meetings在版本39.10.4.5中报告为“最新”

我一直在Outlook中使用Webex功能,但不知道为什么它需要在Word、Excel等中单独启用

前期研究 (不完全是一个答案,但需要一个地方,我可以回答一些长度,可能编辑,因为我继续看这个,并允许其他人回答自己的评论…)

我在这里看到了一些类似的东西——使用一个使用ComObject Excel.Application的PowerShell脚本,并且几乎一年没有更改。在过去一周内开始出现相同的错误。无法一致地复制,但也无法完成复杂的确定性脚本,除非它在完成之前失败。相同的脚本(仍然)在另一台运行类似配置的机器上工作

我现在想我已经排除了任何Windows或Office更新。2个版本相同的系统,一个工作,另一个不工作。两者都是Windows 10 1909版本18363.535、O365 1911版本12228.20364 CTR,从2019-12-11起已完全修补

我的一个陈述现在随机失败的例子:

$wsUsers.Name = 'Users'
。。。其中,
$wsUsers
是新创建的Excel工作表

另一个常见故障点,
$hc
是一个范围(“标题列”):

第一条线(如果事情没有首先在别处中断)总是成功的。然而,第二条线路(现在)经常发生故障,并出现此错误

假设这与最近的更新无关,那么还有很多其他的建议

我确实尝试在受影响的设备上“在线修复”O365,但没有任何更改。我还完成了O365的卸载/重新安装,没有任何更改

下面是一个最小的测试用例:

#Requires -Version 5.0

Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'

$excel = New-Object -ComObject Excel.Application -Verbose:$false
try{
    try{
        $excel.Visible = $true
        $wb = $excel.Workbooks.Add()

        $i = 0
        try{
            for(; $i -le 1000; $i++){
                Write-Host "Ready1: $($excel.Ready)"
                $wsAbout = $wb.Worksheets[1]
                Write-Host "Ready2: $($excel.Ready)"
                $wsAbout.Name = "About $i"
            }
        }catch{
            Write-Host "Ready3: $($excel.Ready)"
            Write-Host "Failed at $i".
            throw $_
        }
    }finally{
        $wb.Close($false, [System.Reflection.Missing]::Value, [System.Reflection.Missing]::Value)
    }
}finally{
    $excel.Quit()
    [void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
}
在第一个系统上,在第一次迭代的某个地方(之前在同一个系统上工作过),这总是失败的。在第二个系统上,我不能让它失败

最典型的故障是:

Ready1: True
Ready2: True
Ready1: True
Ready3: True
Failed at 101 .
Call was rejected by callee. (Exception from HRESULT: 0x80010001 (RPC_E_CALL_REJECTED))
At ....ps1:16 char:17
+                 $wsAbout = $wb.Worksheets[1]
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], COMException
    + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
考虑另一个奇怪的错误:

Ready1: True
Ready2: True
Ready1: True
Ready2: True
Ready1: True
Ready2: True
Ready1: True
Ready3: True
Failed at 3 .
Cannot index into a null array.
At ....ps1:16 char:17
+                 $wsAbout = $wb.Worksheets[1]
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : NullArray
有人向我解释工作表如何在前3次迭代中存在,而不是在第4次迭代中存在

我已经花了太多时间研究这个了。计划下一步重新安装我的系统…

Kate-您有Cisco吗