檢索 COM 類工廠中 CLSID 爲 {000209FF-0000-0000-C000-000000000046} 的組件失敗,原因是出現以下錯誤: 80070005 拒絕訪問。

最近在做一個關於生成word文檔的功能,期間出現了幾個問題,也不算棘手,但是對於第一次使用office組件的人來說,就比較麻煩了,也不知道爲何出現這個錯誤,其中本問題解決費的時間較多,特此記錄,以後方便查閱。

先將問題的場景大體介紹一下:

  1、客戶端及服務端安裝的辦公軟件爲wps;

  2、已存在使用Microsoft.Office.Interop.Word.dll生成word文檔的代碼,客戶端(包括服務端上的客戶端)使用時除表格無法生成,新建文檔、插入數據、保存文檔接口正常使用,無出現問題;

  3、先因業務需求,需要將該代碼,運行在服務端的iis裏面(雖說office不適合運行在服務端,但時間不允許重新開發),首先拋出 80040154 沒有註冊類 的錯誤,這個錯誤安裝office即可,不過多糾結;

  4、office安裝完畢之後,代碼運行時拋出此錯誤:80070005 拒絕訪問

 

  爲了解決錯誤,網上查閱了很多資料,照着大家給的方法,總算是解決了

解決方案:

  1、運行dcomcnfg.exe打開組件服務;

  2、依次展開"組件服務"->"計算機"->"我的電腦"->"DCOM配置"->"Microsoft Word 文檔"

    

  3、右鍵打開“屬性”對話框,點擊“標識”選項卡,選擇交互式用戶;點擊“安全”選項卡,“啓動和激活權限”、“訪問權限”選擇自定義

    

  4、編輯啓動和激活權限權限的自定義選項,將NETWORK SERVICE(也有說法需要IIS_IUSERS和everyone用戶)添加進去,給與本地激活遠程激活的權限,訪問權限相同

    

  5、或許設置完以上代碼就可以正常運行,但是我的代碼還是拋出錯誤,這裏再配置web.config的<identity impersonate="true" userName="用戶名" password="密碼"/>,將其放到<system.web>節點下面即可,代碼就可以正常運行了

        6、在網上找了都是上面的這個方法,然而並沒有什麼卵用!百思不得其解,也嘗試過修改註冊表(發現clsid:00020906-0000-0000-C000-000000000046 word 97文檔),跟報的錯誤000209FF-0000-0000-C000-000000000046 不一樣,想修改又糾結,後來看了一篇論壇無意中看到了以下解決方案;於是把目光投進了服務器IIS的身上;

只要修改IIS的應用程序池,選擇你的項目,點擊高級設置,標識改爲:LocalSystem 或NetworkServer;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章