asp.net發布到iis後到處excel程式運行出錯,問題解決記錄

來源:互聯網
上載者:User

   最近開始專做web開發,總是遇到比較怪的問題,現在把其中一件寫出來(對iis瞭解比較少,需要提高)

   C#寫的一個匯出到excel的程式,發行到iis上就會出錯,今天查出了問題:具體解決辦法如下:(摘抄自net,自己親身測試過可行)

   文章1:  檢索 COM 類別工廠中 CLSID 為{00024500-0000-0000-C000-000000000046} 的組件時失敗,原因是出現以下錯誤: 80070005。具體解決方案如下:1:在伺服器上安裝office的Excel軟體.2:在"開始"->"運行"中輸入dcomcnfg.exe啟動"元件服務"3:依次雙擊"元件服務"->"電腦"->"我的電腦"->"DCOM配置"4:在"DCOM配置"中找到"Microsoft Excel 應用程式",在它上面點擊右鍵,然後點擊"屬性",彈出"Microsoft Excel 應用程式屬性"對話方塊5:點擊"標識"標籤,選擇"互動式使用者"6:點擊"安全"標籤,在"啟動和啟用許可權"上點擊"自訂",然後點擊對應的"編輯"按鈕,在彈出的"安全性"對話方塊中填加一個"NETWORK SERVICE"使用者(注意要選擇本電腦名稱),並給它賦予"本地啟動"和"本地啟用"許可權.7:依然是"安全"標籤,在"存取權限"上點擊"自訂",然後點擊"編輯",在彈出的"安全性"對話方塊中也填加一個"NETWORK SERVICE"使用者,然後賦予"本地訪問"許可權.這樣,我們便配置好了相應的Excel的DCOM許可權.注意:這是在WIN2003上配置的,在2000上,可能是配置ASPNET使用者由於EXCEL是在伺服器上開啟的,所以應該寫一個把匯出資料儲存在伺服器上,然後再傳遞給用戶端的方法,最後每次調用這個功能的時候再刪除以前在伺服器上所產生的所有Excel

 文章2:在建立 EXCEL 應用程式時出現錯誤:

檢索 COM 類別工廠中 CLSID 為 {00024500-0000-0000-C000-000000000046} 的組件時失敗,原因是出現以下錯誤: 80070005

解決辦法: 配置 DCOM 中 EXCEL 應用程式:

要在互動式使用者帳戶下設定 Office Automation 伺服程式,請按照下列步驟操作:

1. 以管理員身份登入到電腦,並使用完整安裝來安裝(或重新安裝)Office。為了實現系統的可靠性,建議您將 Office CD-ROM 中的內容複寫到本地磁碟機並從此位置安裝 Office。
2. 啟動要自動啟動並執行 Office 應用程式。這會強制該應用程式進行自我註冊。
3. 運行該應用程式後,請按 Alt+F11 以載入 Microsoft Visual Basic for Applications (VBA) 編輯器。這會強制 VBA 進行初始化。
4. 關閉應用程式,包括 VBA。
5. 單擊開始,單擊運行,然後鍵入 DCOMCNFG。選擇要自動啟動並執行應用程式。應用程式名稱如下所示:Microsoft Access 97 - Microsoft Access 資料庫
Microsoft Access 2000/2002 - Microsoft Access 應用程式
Microsoft Excel 97/2000/2002 - Microsoft Excel 應用程式
Microsoft Word 97 - Microsoft Word Basic
Microsoft Word 2000/2002 - Microsoft Word 文檔

單擊屬性開啟此應用程式的屬性對話方塊。

6. 單擊安全選項卡。驗證使用預設的存取權限使用預設的啟動許可權已選中。
7. 單擊標識選項卡,然後選擇互動式使用者
8. 單擊確定,關閉屬性對話方塊並返回主應用程式列表對話方塊。
9. DCOM 配置對話方塊中,單擊預設安全性選項卡。
10. 單擊存取權限的編輯預設值。驗證存取權限中是否列出下列使用者,如果沒有列出,則添加這些使用者:SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_<machinename>*
IWAM_<machinename>*

* 這些帳戶僅在電腦上安裝了 Internet Information Server (IIS) 的情況下才存在。

11. 確保允許每個使用者訪問,然後單擊確定
12. 單擊啟動許可權的編輯預設值。驗證啟動許可權中是否列出下列使用者,如果沒有列出,則添加這些使用者:SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_<machinename>*
IWAM_<machinename>*

* 這些帳戶僅在電腦上安裝有 IIS 的情況下才存在。

13. 確保允許每個使用者訪問,然後單擊確定
14. 單擊確定關閉 DCOMCNFG。

文章3:一個web程式需要操作Excel檔案,在開發環境下程式測試正常,部署到IIS後程式操作Excel檔案,IIS報錯。IIS提示資訊如下:檢索 COM 類別工廠中 CLSID 為 {00024500-0000-0000-C000-000000000046} 的組件時失敗,原因是出現以下錯誤: 80070005。說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆疊追蹤資訊,以瞭解有關該錯誤以及代碼中導致錯誤的出處的詳細資料。

異常詳細資料: System.UnauthorizedAccessException: 檢索 COM 類別工廠中 CLSID 為 {00024500-0000-0000-C000-000000000046} 的組件時失敗,原因是出現以下錯誤: 80070005。

ASP.NET 未被授權訪問所請求的資源。請考慮授予 ASP.NET 請求標識訪問此資源的許可權。ASP.NET 有一個在應用程式沒有類比時使用的基進程標識(通常,在 IIS 5 上為 {MACHINE}/ASPNET,在 IIS 6 上為網路服務)。如果應用程式正在通過 <identity impersonate="true"/> 類比,則標識將為匿名使用者(通常為 IUSR_MACHINENAME)或經過身分識別驗證的請求使用者。

要將 ASP.NET 存取權限授予某個檔案,請在資源管理員中右擊該檔案,選擇“屬性”,然後選擇“安全”選項卡。單擊“添加”添加適當的使用者或組。反白 ASP.NET 帳戶,選中所需存取權限對應的框。 ―――――――――――――――――――――――――――――――――經分析是asp.Net運行時許可權不足。解決方案如下:1、使用類比帳戶,在Web.config檔案中加入<!identity impersonate="true" userName="administrator" password="******"/>2、在DCOM元件服務中給MICROSOFT.EXCEL組件賦予ASP.NET的操作許可權,具體步驟:(1)開啟開始菜單的運行對話方塊,輸入dcomcnfg命令,確定,這時會彈出元件服務視窗(2)展開電腦-〉我的電腦-〉DCOM配置,找到Microsoft Excel應用程式節點(3)單擊右鍵-〉屬性,選中“安全”選項,在下面三個項目都選擇“自訂”,並單擊編輯按鈕(4)在啟動許可權對話方塊中點擊添加按鈕,添加相應的使用者(注意:如果是WIN2000,XP,則添加“機器名/ASPNET”使用者,我這裡是以WIN2003為例,WIN2003是添加“NETWORK Service”使用者),並賦予最大許可權

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.