設定ASP.NET Web應用程式對COM組件的存取權限

來源:互聯網
上載者:User

問題來源:

ASP.NET Web應用程式中,在伺服器端開啟一個Microsoft Excel文檔,並對其操作,需要訪問Microsoft Excel應用程式COM組件。對項目添加引用“Microsoft Office 10.0”,輸入相應代碼後編譯成功,運行時ASP.NET架構提示錯誤。

相關代碼:

Excel.ApplicationClass app;

app = new Excel.ApplicationClass();

// 開啟活頁簿進行資料操作

app.Quit();

錯誤資訊:

{color3}“/manager”應用程式中的伺服器錯誤。

--------------------------------------------------------------------------------

拒絕訪問。

說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆疊追蹤資訊,以瞭解有關該錯誤以及代碼中導致錯誤的出處的詳細資料。

異常詳細資料: System.UnauthorizedAccessException: 拒絕訪問。

未授權此 ASP.NET 進程訪問所請求的資源。出於安全原因,預設的 ASP.NET 進程標識為“{machinename}ASPNET”,它只具有有限的特權。請考慮授予該 ASP.NET 進程標識訪問此資源的許可權。

若要授予 ASP.NET 對檔案的寫訪問權,請在資源管理員中右擊該檔案,選擇“屬性”,然後選擇“安全”選項卡。單擊“添加”以添加“{machinename}ASPNET”使用者。反白此 ASP.NET 帳戶,在“允許”列中選中“寫”框。

{/color}

分析原因:

預設情況下,ASP.NET應用程式依託的進程aspnet_wp將以“ASPNET”賬戶(此賬戶屬於系統的Users使用者組,其存取權限比較低)。

首先考慮運行過程中,aspnet_wp進程對其可能訪問的檔案系統資源是否擁有足夠的許可權。

但是,Web應用程式、類庫以及Office運行時檔案所存放的磁碟機檔案系統格式都是FAT32,排除了因NTFS檔案系統的安全設定所引起的許可權限制。

其次考慮到,系統的COM組件安全設定也能對相應帳號的存取權限產生影響。

解決方案:

開啟元件服務管理程式(“控制台”->“管理工具”->“元件服務”),在“元件服務”->“電腦”->“我的電腦”->“DCOM配置”中找到“Microsoft Excel 應用程式”。

右擊此節點,選擇“屬性”,選擇“安全性”頁,在“啟動許可權”和“存取權限”中分別選擇“自訂”並點擊“編輯”按鈕,在“啟動許可權”和“存取權限”對話方塊內添加系統ASPNET賬戶(“<機器名>ASPNET”),開啟“啟動”和“訪問”的允許許可權,確認並關閉對話方塊。

問題反思:

系統的安全設定不僅僅只有檔案資源,組件的安全性設定也相當重要。

Windows提供了“元件服務”管理程式進行對COM、DCOM、COM+組件的設定。

對.NET程式集的安全配置,安裝過.NET架構的系統可以通過“管理工具”內的“Microsoft .NET Framework Configuration”和“Microsoft .NET Framework Wizard”進行。

 

 

 

檢索COM 類別工廠中CLSID 為 {00024500-0000-0000-C000-000000000046}的組件時失敗

Asp.Net裡面調用Microsoft Excel Application DCOM 組件出錯最終解決方案:

 

1: 在"開始"->"運行"中輸入dcomcnfg.exe啟動"元件服務"

2: 依次雙擊"元件服務"->"電腦"->"我的電腦"->"DCOM配置"

3: 在"DCOM配置"中找到"Microsoft Excel 應用程式"(Microsoft Excel Application),在它上面點擊右鍵,然後點擊"屬性",彈出"Microsoft Excel 應用程式屬性"對話方塊

4: 點擊"標識"標籤,選擇"互動式使用者"

5: 點擊"安全"標籤,在"啟動和啟用許可權"上點擊"自訂",然後點擊對應的"編輯"按鈕,在彈出的"安全性"對話方塊中填加

一個"ASP.net"使用者(注意要選擇本電腦名稱),並給它賦予"本地啟動"和"本地啟用"許可權.

6: 依然是"安全"標籤,在"存取權限"上點擊"自訂",然後點擊"編輯",在彈出的"安全性"對話方塊中也填加一個"ASP.net"、 (EveryOne 或者NETWORK SERVICE )使用者,然後賦予"本地訪問"許可權

7:點擊“位置” ,選中 在資料所在的電腦上運行程式 和 在此電腦上運行程式

 

這樣,我們便配置好了相應的Excel的DCOM許可權.

注意:這是在WINxp上配置的,在2003上,ASP.net使用者改為NETWORK SERVICE使用者。

重新啟動IIS。即可解決問題

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.