簡體   English   中英

IIS內的Excel workbook.saveas

[英]Excel workbook.saveas inside IIS

在IIS中發布Web應用程序時出現問題

有時WorkBook.SaveAs方法可以正常工作,有時則不能。

說明:執行當前Web請求期間發生未處理的異常。 請查看堆棧跟蹤,以獲取有關錯誤及其在代碼中起源的更多信息。

異常詳細信息:System.Runtime.InteropServices.COMException:遠程過程調用失敗。 (來自HRESULT的異常:0x800706BE)

源錯誤:

    workbook.Saved = True
    workbook.SaveAs(Server.MapPath("~/MyFolder/Excel.xlsx"))
    workbook.Close()
    APP.Quit()

有時錯誤是在APP.Quit上

首先要注意的是,由於許可和穩定性/可靠性問題,Microsoft 不支持 Office interop 服務器端

Microsoft當前不建議也不支持任何無人參與的非交互客戶端應用程序或組件(包括ASP,ASP.NET,DCOM和NT Services)中的Microsoft Office應用程序自動化,因為Office可能表現出不穩定的行為和/在此環境中運行Office時出現死鎖或死鎖。

盡管如此,仍有許多人這樣做/嘗試這樣做,並遇到了與您類似的問題。 通常,這似乎是由權限問題(安全上下文和DCOM安全配置)引起的。 已針對其描述了不同的潛在解決方案,例如

  • 如何使IIS7與Office Interop配合使用具有兩種不同的解決方案,其中一種在其他地方多次提到:

    1. 打開Windows資源管理器
    2. 根據您安裝的是32位還是64位版本的Office,您需要執行以下一項(或兩項):
      • 32位Office安裝:導航到C:\\ Windows \\ System32 \\ config \\ systemprofile
      • 64位Office安裝:
    3. 導航到C:\\ Windows \\ SysWOW64 \\ config \\ systemprofile
    4. 驗證文件夾“桌面”是否存在(如果不存在,請創建它)
    5. 右鍵單擊>屬性
    6. 在安全選項卡上:添加具有默認權限(讀取和執行;列出文件夾內容;讀取)的運行網站的帳戶(例如:網絡服務)
  • RPC失敗,打開了一個Excel文檔。 列出以下解決方案:在“運行”中鍵入Dcomcnfg.exe,這將打開dcomconfig實用程序。

    在dcomconfig實用程序中,

    轉到組件服務->計算機->我的電腦-> DCom配置-> Microsoft Excel應用程序(和Powerpoint)

    右鍵單擊它,然后轉到屬性。 轉到安全選項卡。 在安全之下

    1)啟動和激活權限->選擇自定義,然后單擊編輯。 添加用戶網絡服務,並檢查“允許”下的所有內容。

    2)對“訪問權限”和“配置權限”執行相同的操作。

    然后單擊“應用”並關閉所有內容。

  • 另一種使用Windows Server 2003的解決方案

    事實證明,COM對象需要某種許可。 將Win2003服務器上的AppPool(用於站點)設置為“ SYSTEM”可以解決此問題。 對於某些用途(默認情況下),ASPNET帳戶有權訪問任何COM對象嘗試訪問的內容。

這些解決方案之一可能會為您服務。

它有時對您有用而不是在其他時間不起作用的原因可能與特定excel文件的內容有關,例如,它是否包含任何VBA腳本或引用任何(特定)模塊。 所以這是您應該研究的。

暫無
暫無

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

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