Из веб-сервиса (cgi) вызывается такой код:
...
var
WordApp:OleVariant;
...
begin
...
CoInitialize(nil);
WordApp:=CreateOleObject('Word.Application');
WriteToLogFile('1');
try
WordApp.DisplayAlerts:=false;
WriteToLogFile('2');
WordApp.Documents.add; //тут вылетает exception
WriteToLogFile('3');
...
except on E: Exception do
begin
WriteToLogFile(E.Message);
sf:=wdDoNotSaveChanges;
WordApp.Quit(sf);
WordApp:=Unassigned;
CoUninitialize;
end;
end;
...
В логе появляется следующее:
1
2
Ошибка в Word
Если вызывать этот же код не из веб-сервиса, то все работает.
Пробовал достучаться к ворду через компонент TWordDocument — на строчке добавления документа (или открытия существующего, без разницы) сервис просто зависает.
P.S. Я не знаток Delphi, но информативность сообщения об ошибке меня больше всего напрягает в этой истории

Может я что-то не так делаю?
Здравствуйте, Alex4004, Вы писали:
A> Может я что-то не так делаю?
http://support.microsoft.com/kb/257757/ru
Здравствуйте, bnk, Вы писали:
bnk>http://support.microsoft.com/kb/257757/ru
Спасибо, не знал, что все настолько плохо...
Т.е. рекомендуете прекратить все попытки решить данную задачу средствами MS Office? Тогда, может быть, что-нибудь проверенное из сторонних разработок порекомендуете?
Здравствуйте, Alex4004, Вы писали:
A>Т.е. рекомендуете прекратить все попытки решить данную задачу средствами MS Office? Тогда, может быть, что-нибудь проверенное из сторонних разработок порекомендуете?
А в чем задача-то состоит?
Есть несколько приложений на delphi, выполняющих различные части одной задачи. Среди них одно — генератор отчетов. Задача состоит в том, чтобы предоставить доступ к данному функционалу через интернет. Т.е. пишется веб-интерфейс, а все приложения переписываются под веб-сервисы. Все шло нормально, но случилась заминка на программе генератора отчетов, которая использует MS Word.
Здравствуйте, bnk, Вы писали:
bnk>А в чем задача-то состоит?