在IIS7上的经典ASP中创建Word对象时出错

时间:2011-10-06 13:40:39

标签: iis-7 asp-classic ms-word

将我们的Intranet从Windows 2000 / IIS 4框转换为Windows 2008 / IIS 7框。现在就进行直接转换,着眼于将来在C#.NET中重新开发一些应用程序。

新服务器安装了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中使用Word 2010自动化...... :)

1 个答案:

答案 0 :(得分:1)

我在64位版本的Windows Server 2008上运行了类似的东西并尝试了一些Excel自动化。显然,64位版本存在一些Office自动化问题。我不确定它们是否扩展到所有的Office Automation,或者它是否只是Excel,但这里是我用来解决问题的链接。

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

我创建了第二篇文章中提到的文件夹,它就像一个魅力。