VB Script Documents.Открытый бросок 424 ошибка - PullRequest
1 голос
/ 21 января 2010

Итак, у меня есть скрипт vbs:

Function test2open( sSourceFile, sPDFFile )
  Dim wApp ' As Word.Application
  Dim wDoc ' As Word.Document

  logStream.writeline "inside test2open"
  on error resume next

  Set wApp = CreateObject("Word.Application")
  logStream.writeline Err.Number
  Err.Clear

  Set wDoc = wApp.Documents.Open("c:\Windows\Temp\test.DOC")
  logStream.writeline Err.Number
  logStream.writeline Err.Description
  logStream.writeline Err.Source

  wApp.Quit WdDoNotSaveChanges
  Set wApp = Nothing
End Function

Я вызываю этот вызов vi php exec через apache с помощью cscript.exe. Смысл основного сценария, который я не собираюсь вставлять, состоит в том, чтобы преобразовать слово doc в pdf. Но и мой полный сценарий, и приведенный выше имеют одну и ту же проблему.

Когда я вызываю скрипт vbs самостоятельно, сидя на окне Windows, он работает так, как я думаю, но при удаленном вызове через apache через php он вызывает ошибки при вызове Documents.Open с 424 Error Object требуется ошибка времени выполнения Microsoft VBScript.

Этот же точный код работает правильно на 2 других окнах, что заставляет меня думать, что это какая-то проблема с разрешениями (любите эти описания сообщений об ошибках MS). Но я не могу понять, что. Есть мысли?

1 Ответ

2 голосов
/ 21 января 2010

Мне кажется, я нашел ответ на свой вопрос. Проблема в том, что MS ограничивает использование автоматизации офисных продуктов. Server 2008 64bit и Office 2007 просто не работают хорошо. Решение, которое сработало для меня, было найдено по адресу:

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

В случае, если эта нить исчезнет:

This solution is ...

・Windows 2008 Server x64

  Please make this folder.

  C:\Windows\SysWOW64\config\systemprofile\Desktop

・Windows 2008 Server x86

  Please make this folder.

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