2011-10-06 91 views
2

在將我們的Intranet從Windows 2000/IIS 4框轉換爲Windows 2008/IIS 7框中。現在就做一個直接轉換,並着眼於未來在C#.NET中重新開發一些應用程序。在IIS7上的經典ASP中創建Word對象時出錯

新服務器安裝,舊的Word 2010有Word 2003中

運行與傳統的ASP應用程序的問題。嘗試基於模板文檔創建和修改Word文檔。

接收以下錯誤:

Microsoft VBScript runtime error '800a01a8' 

Object required: 'Documents.Open(...)' 

它嘗試運行的代碼如下:

Dim wrdObj 
Set wrdObj = Server.CreateObject("Word.application") 
Dim wrdDoc 
Set wrdDoc = Server.CreateObject("Word.Document") 
Set wrdDoc = wrdObj.Documents.Open(docRoot & docName) 
' Do word assignments 
With wrdDoc 
    .Variables("Today").Value = rs.Fields.Item("TODAY").Value & " " 
    .Variables("Requester").Value = Request.QueryString("strUser") & " " 
    .Variables("Ship_Comp").Value = rs.Fields.Item("TXT_VENDOR_NAME").Value & " " 
    .Variables("Ship_Addr").Value = rs.Fields.Item("ADDR").Value & " " 
    .Variables("Ship_City").Value = rs.Fields.Item("CITY").Value & " " & rs.Fields.Item("STATE_ZIP").Value 
    .Variables("Ship_Country").Value = rs.Fields.Item("COUNTRY").Value & " " 
    .Fields.Update 
    .Save 
End With 
'wrdDoc.Section 
wrdDoc.Close 
Set wrdDoc = Nothing 
wrdObj.Quit 
Set wrdObj = Nothing 

它是在下面的行失敗:

Set wrdDoc = wrdObj.Documents.Open(docRoot & docName) 

我我在那裏做了一堆搜索,但在經典ASP f中似乎沒有很多人使用Word 2010自動化或一些奇怪的原因... :)

回答

1

我在64位版本的Windows Server 2008上遇到了類似的問題,並嘗試一些Excel自動化。顯然,64位版本有一些Office自動化問題。我不確定它們是否擴展到所有Office自動化,或者它只是Excel,但這裏是我用來解決問題的鏈接。

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

我創造了第二個帖子中提到的文件夾,它的工作就像一個魅力。

+0

我看完了,簡直不敢相信。我試過了 - 它工作。談論一些難以絆倒的東西!感謝您的幫助,超流量 - 這就像一個魅力。 – Jay

+0

有類似的問題,創建「桌面」文件夾確實解決了我的問題。就我而言,即使它是64位O/S(Win 7),我必須在c:\ windows \ system32下創建文件夾 - 討厭的討厭的討厭....但它的作品。 – robnick