在自动化

时间:2016-03-11 13:55:28

标签: delphi ms-word automation iis-7.5 windows-server-2008-r2

我有一个应用程序实例化一个对象,该对象启动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

0 个答案:

没有答案