簡體   English   中英

如何解決異常:呼叫被被叫方拒絕。 (來自 HRESULT 的異常:0x80010001 (RPC_E_CALL_REJECTED))在 C# 中?

[英]how to solve Exception:Call was rejected by callee. (Exception from HRESULT: 0x80010001 (RPC_E_CALL_REJECTED)) in C#?

我在控制台應用程序中編寫了一個 C# 代碼來打開兩個 excel 並將數據從一個 excel 復制並粘貼到另一個 excel。 在目標 excel 的可見性為真之前,它一直工作正常。 但是我需要在執行時隱藏excel。 所以我將可見性更改為 false。 像,

  _destExcelApp = new Excel.ApplicationClass();
  _destExcelApp.Visible = false;

現在它顯示了一個異常

呼叫被被叫方拒絕。 (來自 HRESULT 的異常:0x80010001 (RPC_E_CALL_REJECTED))

這個怎么解決?

當我將應用程序部署到沒有完全激活和許可的 Excel 安裝的機器上時,我遇到了同樣的錯誤。 我花了幾個小時試圖診斷這個問題。 請務必檢查您的 Office 安裝以確保它們是完整的。

我在這個問題的幫助下解決了這個行為:

“呼叫被被叫方拒絕”的奇怪行為。 Excel 異常

問題很簡單,當我發出Worksheet.SaveAs命令時, Workbook.Open還沒有完成。 所以有時,腳本會起作用,有時不會。

我只是在Workbook.Open之后在腳本中添加了一個暫停並且它起作用了。 我繼續找到一個屬性Ready ,它讓我可以做我想做的事情:

$excel = New-Object -ComObject "Excel.Application" -ea Stop
$wb = $excel.Workbooks.Open($workbook)
$sheet = $wb.Sheets("List")
while (-not $excel.Ready) {
     sleep 1
}
$sheet.SaveAs($csvpath,6)

所以就我而言,它與未激活或損壞的 Excel 安裝無關。

確保 MS Word/Excel 沒有顯示需要響應的對話框。

我在導致失敗的行上設置了一個斷點,然后在 PowerShell 中將.Visible設置為 true,以找到以下內容:

$word.Visible = $true

MS Word 設置默認程序提示

單擊“是”並更新設置后,在我重新運行腳本化 COM 交互后,它們成功了。

我遇到了同樣的錯誤,許多建議的解決方案對我不起作用。 我有一個在 Windows 8 中運行的應用程序,我發現問題是 Excel 總是要求為“xlsx”擴展選擇默認應用程序。 執行應用程序時沒有出現窗口對話框,只顯示錯誤。

我解決了進入控制面板>程序>默認程序並將Microsoft Office Excel 2016設置為xlsx文件的默認程序的問題。

我在 Word 中遇到了這個問題,我的解決方案是卸載 OpenOffice。 我不確定是否有其他解決方案,但很可能與 dll 以及與您以編程方式生成的特定文件的默認文件處理程序沖突有關。

在我的機器上遇到了這個問題。 Excel 已完全激活並且已經是 .xlsx 文件的默認程序。 我正在加載我使用數據透視表創建的工作簿模板,並讓腳本更新表中的數據。 事實證明,如果在數據透視表選項 > 數據下將數據透視表設置為“打開文件時刷新數據”,則會導致某種線程爭用問題。
打開時禁用刷新解決了這個問題。

就我而言,我只是重新啟動了我的機器,發現有一個 Windows 更新待處理。 重新啟動機器解決了我的問題。

我同意那些說必須激活 excel 許可證的人,我遇到了同樣的問題,我激活了許可證一切正常 - Papiki

您是將一系列信息從一個文檔復制到另一個文檔,還是在兩個文檔之間來回復制單元格? Excel 是單線程的,因此如果您來回切換,可能會導致此問題。

我今天在 Excel 2016 中遇到了這個錯誤。

我們發現有此問題的計算機激活了一些加載項。

奇怪的是,一台電腦需要很長時間才能啟動 excel。 停用加載項后,我們的程序運行良好。

奇怪的是,我們無法在我們的開發電腦上重現這一點。

我有同樣的問題。 我在“Windows XP x86”上運行該程序,但它因類似錯誤而崩潰。 問題出在這一行:

sheetSource.Cells(i, iColumn).Interior.Color = RGB(255, 255, 0)

多次執行此行導致崩潰。 當我立即刪除它時,一切都開始正常工作。

除了上述解決方案之外,我還可以提供另一件需要注意的事情,這些解決方案似乎與此評論一致(根據 Alielson Piffer 的回答),

SUMMARY: So by the answers here we could conclude that this error may occur when Excel is showing any message in a popup window like for example "This software is not activated" or "Do you want Excel to be the default application for DOCX files?". – Elmue Jun 12 '17 at 22:43

沒有打開的消息框或提示,但任務管理器中有一個未結束的進程(在我的例子中是 Word.exe),我需要結束。 那修復了它。

這將解釋為什么重新啟動可以幫助另一個用戶。

請務必檢查您的 Office 安裝以確保它們是完整的。

否則嘗試跟隨

在寫入所有數據后嘗試 App 可見性 false 然后打開 Visibility ex Dim wapp As new excel.Application .... . . wapp.Visible = false

'做你的寫作...... . . .

'然后打開你的可見性

wapp.Visible = True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM