在Windows2008 R2系統中無法看見Microsoft Excel Application的問題解決方案
http://blog.csdn.net/kongwei521/article/details/43699503
最近在伺服器和本地呼叫delphi寫的匯出Excel 的webservices,出現一系列配置和許可權問題,現在一一記錄下來。
Error 資訊:
- “/”應用程式中的伺服器錯誤。
- --------------------------------------------------------------------------------
- 拒絕訪問。, ProgID: "excel.application"
- 說明: 執行當前 Web 請求期間,出現未經處理的異常。請檢查堆疊跟蹤資訊,以瞭解有關該錯誤以及程式碼中導致錯誤的出處的詳細資訊。
- 異常詳細資訊: System.Web.Services.Protocols.SoapHeaderException: 拒絕訪問。, ProgID: "excel.application"
- 源錯誤:
- 行 159: [return: System.Xml.Serialization.SoapElementAttribute("return")]
- 行 160: public string xxxx(string tbdatasource, string tshipmentbh, string toutbh, string serverpath) {
- 行 161: object[] results = this.Invoke("xxxx", new object[] {
- 行 162: tbdatasource,
- 行 163: tshipmentbh,
- 原始檔: d:\WebApplication4\WebApplication4\Web References\WebReference\Reference.cs 行: 161
- 堆疊跟蹤:
- [SoapHeaderException: 拒絕訪問。, ProgID: "excel.application"]
- System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response,
- Stream responseStream, Boolean asyncCall) +507386
- System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +215
- WebApplication4.WebReference.Imainservice.jianzhen(String tbdatasource, String tshipmentbh, String toutbh, String serverpath) in
- d:\WebApplication4\WebApplication4\Web References\WebReference\Reference.cs:161
- WebApplication4.WebForm1.Page_Load(Object sender, EventArgs e) in d:\WebApplication4\WebApplication4\WebForm1.aspx.cs:16
- System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
- System.Web.UI.Control.OnLoad(EventArgs e) +92
- System.Web.UI.Control.LoadRecursive() +54
- System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772
- --------------------------------------------------------------------------------
- 版本資訊: 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 工作薄的相關許可權)