簡體   English   中英

在IIS7的ASP-Classic中創建Word.Application時出錯

[英]Error creating Word.Application in ASP-Classic on IIS7

我們正在努力驗證我們的應用程序是否可以在Windows Server 2008上進行部署,並且存在一些配置問題。

以下代碼引發互操作錯誤:

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經典應用程序的混合模式。 我已經檢查了Ogawa解決方案,該解決方案要求systemprofile具有一個Desktop文件夾,並且需要配置AppPool以加載用戶概要。 Word 97-2003文檔DCOM對象配置為以與站點的應用程序池相同的用戶身份運行。 用戶添加的具有完整權限集的啟動和激活,訪問權限和配置權限。

編輯添加:交互式運行時,此腳本(在cscript或wscript下運行)成功創建Word.Application並提取用戶名:

var wordobj = new ActiveXObject("Word.Application");
WScript.echo(wordobj.UserName);
wordobj.quit();

顯然,這與在IIS7上的經典ASP中創建Word對象出錯不重復,因為我們在CreateObject for Word.Application而不是在打開文檔時遇到了錯誤。

該服務器是Windows 2008 x86。

我在配置此功能時錯過了什么?

在刻錄了來自我們的MSDN訂閱的支持事件之后,我們發現了以下內容:

在IIS7上,必須在AppPool和應用程序的匿名身份驗證中都配置進程標識。 如果您運行的是ASP和ASP.NET的混合版本,則可以配置匿名身份驗證(在站點的身份驗證詳細信息中)以指向AppPool的身份,或使用特定的用戶名/密碼組合。

匿名身份驗證的默認值為IUSR,而不是應用程序池標識。

如果有人知道可以正確調用appcmd.exe來設置應用程序池標識通過,則在注釋中會很有用....盡管我們的腳本可以在此處簡單地使用相同的用戶名/密碼組合,但最好是將其存儲位置減少一倍。

很長時間以來,我不必對服務器端Word自動化問題進行故障排除,但我會對此進行介紹。

我們曾經看到此問題的原因之一是因為用戶配置文件無法加載。 在我們看來,這可能是不正確的配置,但也許您遇到了同樣的問題。

這是我們的解決方法:

  1. 通過以該用戶身份登錄IIS服務器,確保該AppPool用戶的用戶配置文件存在。
  2. 創建並安裝不執行任何操作的Windows服務。 或者,您可以使用無用的現有服務(傳真)。
  3. 將服務配置為與AppPool相同的用戶“以以下身份登錄:”。
  4. 將“啟動類型”設置為“自動”。
  5. 確保它正在運行。

本質上,我們以AppPool用戶身份運行服務,以保持用戶個人資料處於打開狀態。 希望這至少可以消除它是用戶配置文件問題的可能性。

請檢查以下由Ogawa回答的鏈接,該鏈接通過創建文件夾對我來說就像是一種魅力

C:\\ Windows \\ System32 \\ config \\ systemprofile \\ Desktop

http://social.msdn.microsoft.com/Forums/zh-CN/innovateonoffice/thread/b81a3c4e-62db-488b-af06-44421818ef91?prof=required

只需嘗試查找已在本地計算機或服務器上設置的用戶即可。 顯然IUSR_UNKNOWN沒有“我的文檔”文件夾,並且Microsoft尚未授予該陌生人通過注冊表當前用戶會話訪問您的Word文檔的權限。 真是太幸運了,試圖說服微軟允許該人員訪問。

而是創建一個新用戶或一個域用戶,並為其授予本地管理員訪問權限(出於管理目的)或一個常規用戶帳戶以正常使用。 並在您的本地計算機或服務器上為他設置一個帳戶。 瓦拉。 不再愚蠢了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM