標籤:csdn sdn word one 簡單的 定義 pool 控制 question
WebAPP,API調用Excel, Word,Bartender等DCOM, VS調試沒問題,發布到IIS出錯,類似如下
"Message": "An error has occurred.",
"ExceptionMessage": "Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).",
"ExceptionType": "System.UnauthorizedAccessException",
網上查了很多資料,也嘗試了很多方法,原因應該是IIS調用DCOM用的使用者名稱的許可權問題,VS調試用的是本機系統賬戶,而IIS用的是Applicaiton Pool定義的賬戶,如果此賬戶沒有相應啟動DCOM的許可權,那麼就會出現Access 錯誤。
最後簡單的解決方案,將Applicaiton Pool的Identity改正LocalSystem,然後在DCOMCNFG.exe的元件服務裡將Excel或其他DCOM的應用的Identity改成interactive user,最然說這個設定會造成安全方面的問題,當時如果是內部用的話問題也不大。
當然也可以將其他賬戶配置成相應許可權,道理上應該可以,當時嘗試多次都不行,有時間再看看如下連結吧
http://www.cnblogs.com/zhongxinWang/p/3275154.html
http://bbs.csdn.net/topics/360144511
http://blog.csdn.net/aiya1229/article/details/7031727
https://forums.asp.net/t/1951549.aspx
https://stackoverflow.com/questions/17785063/retrieving-the-com-class-factory-for-component-error-80070005-access-is-de
還有,有些DCOM是32位的,在64位系統用DCOMCNFG組件裡有可能看不到,需要用命令,MMC -32開啟控制台,添加snap in,元件服務,應該可以看到。
WebAPP,API調用Excel, Word,Bartender等DCOM, VS調試沒問題,發布到IIS出錯