1. 程式人生 > >在Windows2008 R2系統中無法看見Microsoft Excel Application的問題解決方案

在Windows2008 R2系統中無法看見Microsoft Excel Application的問題解決方案

http://blog.csdn.net/kongwei521/article/details/43699503

最近在伺服器和本地呼叫delphi寫的匯出Excel 的webservices,出現一系列配置和許可權問題,現在一一記錄下來。

Error 資訊:

  1. “/”應用程式中的伺服器錯誤。  
  2. --------------------------------------------------------------------------------  
  3.  拒絕訪問。, ProgID: "excel.application"   
  4. 說明: 執行當前 Web 請求期間,出現未經處理的異常。請檢查堆疊跟蹤資訊,以瞭解有關該錯誤以及程式碼中導致錯誤的出處的詳細資訊。   
  5. 異常詳細資訊: System.Web.Services.Protocols.SoapHeaderException: 拒絕訪問。, ProgID: "excel.application"  
  6. 源錯誤:   
  7. 行 159:        [return: System.Xml.Serialization.SoapElementAttribute("return")]  
  8. 行 160:        public string xxxx(string tbdatasource, string tshipmentbh, string toutbh, string serverpath) {  
  9. 行 161:            object[] results = this.Invoke("xxxx", new object[] {  
  10. 行 162:                        tbdatasource,  
  11. 行 163:                        tshipmentbh,   
  12. 原始檔: d:\WebApplication4\WebApplication4\Web References\WebReference\Reference.cs    行: 161   
  13. 堆疊跟蹤:   
  14. [SoapHeaderException: 拒絕訪問。, ProgID: "excel.application"]  
  15.    System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response,   
  16. Stream responseStream, Boolean asyncCall) +507386  
  17.    System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +215  
  18.    WebApplication4.WebReference.Imainservice.jianzhen(String tbdatasource, String tshipmentbh, String toutbh, String serverpath) in   
  19. d:\WebApplication4\WebApplication4\Web References\WebReference\Reference.cs:161  
  20.    WebApplication4.WebForm1.Page_Load(Object sender, EventArgs e) in d:\WebApplication4\WebApplication4\WebForm1.aspx.cs:16  
  21.    System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51  
  22.    System.Web.UI.Control.OnLoad(EventArgs e) +92  
  23.    System.Web.UI.Control.LoadRecursive() +54  
  24.    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772  
  25. --------------------------------------------------------------------------------  
  26. 版本資訊: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.34237   


32位系統處理方法:

1)。開始--〉執行--〉cmd 或者直接在WIN7以上版本開始中裡面的搜尋輸入

2)。命令提示符下面,輸入comexp.msc,會直接開啟元件服務

3)。點選元件服務=》計算機=》我的電腦=》DCOM配置 =》找到 Microsoft Excel Application(前提需要安裝office,如果你的系統是64位請往下看64位系統的配置方法)

4)。 在"DCOM配置"中找到"Microsoft Excel Application",在它上面點選右鍵,然後點選"屬性",彈出"Microsoft Excel 應用程式屬性"對話方塊,然後點選標識=》選擇互動式使用者。


5)。點選"安全"標籤,在"啟動和啟用許可權"上點選"自定義",然後點選對應的"編輯"按鈕,在彈出的"啟動和啟用許可權"對話方塊中填加一個"NETWORK SERVICE"和"Everyone"使用者,並給它賦予"本地啟動"和"本地啟用"許可權

6)。依然是"安全"標籤,在"訪問許可權"上點選"自定義",然後點選"編輯",在彈出的"訪問許可權"對話方塊中也填加一個"NETWORK SERVICE"和"Everyone"使用者,然後賦予"本地訪問"許可權.

7)。依然是"安全"標籤,在"配置許可權"上點選"自定義",然後點選"編輯",在彈出的"更改配置許可權"對話方塊中也填加一個"NETWORK SERVICE"和"Everyone"使用者,然後賦予"讀取"許可權.

8)。重啟IIS服務。測試結束。

9)。如果你本機或者伺服器安裝了office 2003 然後又安裝了 office2007相容包的話請參考下圖設定。(ps:需要同事設定Office 2007 工作薄的相關許可權)