我們正在努力驗證我們的應用程序是否在Windows Server 2008上部署,並且存在一些配置問題。在IIS7上的ASP-Classic中創建Word.Application時出錯
下面的代碼引發互操作錯誤:
On Error Resume Next
Set WordApp = Server.CreateObject("word.application")
If Err.number <>0 Then
SetErrorDesc ErrorDesc, "Unable to instantiate word. (" & err.Description & ")<br>"
SetErrorStatus ErrorStatus,True
End If
在err.Description返回的錯誤信息是:
006~ASP 0178~Server.CreateObject Access Error~The call to Server.CreateObject failed while checking permissions. Access is denied to this object.
該網站被配置爲使用特定用戶帳戶其應用池。該網站是一種混合模式的ASP.Net和asp-classic應用程序。我已經檢查了Ogawa的解決方案,需要systemprofile有一個Desktop文件夾,並且要配置AppPool來加載用戶配置文件。 Word 97-2003文檔DCOM對象被配置爲與網站的應用程序池相同的用戶運行。啓動和激活「,」訪問權限「和」配置權限「。
編輯補充: 交互方式運行時,這個腳本(下CSCRIPT或WScript的運行)成功創建一個Word.Application並提取用戶名:
var wordobj = new ActiveXObject("Word.Application");
WScript.echo(wordobj.UserName);
wordobj.quit();
顯然不是Error creating Word object in classic ASP on IIS7重複,因爲我們越來越CreateObject for Word.Application上的錯誤,而不是在打開文檔時。
服務器是Windows 2008 x86。
我在配置時錯過了什麼?
您確認一個簡單的交互.VBS從同一賬戶在同一臺機器上運行,可以創建對象? – AnthonyWJones 2012-01-24 13:39:48
@AnthonyWJones是的,交互式場景工作正常。 (使用jscript,但原理是一樣的,請參閱編輯 – 2012-01-24 14:34:43
在這篇文章中有一些關於服務器安全權限的討論可能會有所幫助(向下翻頁)http://forums.devx.com/showthread.php?t = 12914 – Dee 2012-01-21 19:57:52