1. 程式人生 > >在Asp.net中建立Microsoft.Office.Interop.Word.Application時出現“拒絕訪問”錯誤的解決方法

在Asp.net中建立Microsoft.Office.Interop.Word.Application時出現“拒絕訪問”錯誤的解決方法

專案中要實現在伺服器端開啟一個Word模版檔案,修改其內容後再下載到客戶端使用,在Asp.net頁面中建立Microsoft.Office.Interop.Word.Application物件時出現“拒絕訪問”的錯誤,提示資訊如下:

拒絕訪問。

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

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

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

若要授予 ASP.NET 對檔案的寫訪問權,請在資源管理器中右擊該檔案,選擇“屬性”,然後選擇“安全”選項卡。單擊“新增”新增適當的使用者或組。突出顯示 ASP.NET 帳戶,選中所需訪問許可權對應的框。

在網上找了好久,看到有人提示說是使用dcomcnfg工具,修改訪問許可權,於是試了一下,果然成功了,操作步驟如下:
1、在命令列中輸入:dcomcnfg,會顯示出“元件服務”管理器
2、開啟“元件服務-》計算機-》我的電腦-》DCOM 配置”,找到“Microsoft Word文件”,單擊右鍵,選擇“屬性”
3、在“屬性”對話方塊中單擊“安全”選項卡,在“啟動和啟用許可權”處選擇“自定義”,再單擊右邊的”編輯“,在彈出的對話方塊中新增”ASPNET“(在IIS6中是NETWORD SERVICE)使用者,給予”本地啟動“和”本地啟用“的許可權,單擊”確定“,關閉”元件服務“管理器。
這樣就能在Asp.net頁面中訪問Word物件了。