我有一个应用程序实例化一个对象,该对象启动Word应用程序并通过Word宏执行某些操作。 当我在服务器上启动它时,一切都运行良好,但远程程序调用失败。
这里是失败的代码:
for i := 0 to myFiles.Count - 1 do
//...
if Uppercase(ExtractFileExt(myFiles.Items(i))) = '.DOC' then
begin
App_Word := CreateOleObject('Word.application');
SendDebug('word lunched');
//...
SendDebug('macro done');
finally
SendDebug('word closing');
if App_Word.Documents.Count>0 then
SendDebug('Another document :' + InttoSTr(App_Word.Documents.Count));
App_Word.Quit(EmptyParam, EmptyParam, EmptyParam);
App_Word := Unassigned;
end;
end
Else
if Uppercase(ExtractFileExt(Fichiers.Items(i))) = '.XLS' then
//...
End
//...
SendDebug('doc '+IntToStr(i+1)+' generated');
end;
SendDebug('docs generated');
end;
这里是在服务器上本地启动的日志文件(SendDebug):
word lunched
macro done
word closing
Another document :1
doc 1 generated
docs generated
这里远程启动时:
word lunched
macro done
word closing
我认为远程执行此命令时会出现问题:
App_Word.Documents.Count
因为测试是使用完全相同的文件完成的。
我在IIS W2008R2上使用office2K运行此应用程序。能帮我解决一下这个问题吗?
每次远程运行应用程序时,我都会在事件日志中收到此错误:
错误应用程序名称:WINWORD.EXE,版本:9.0.0.6926,时间 stamp:0x3d97fbe5错误模块名称:MSO9.DLL,版本:9.0.0.7616, 时间戳:0x3e9f5ea2异常代码:0xc0000005故障偏移: 0x00033ae3错误进程id:0xdc8