Есть такое веб-приложение NetSchool, в котором когда делались доработки, но пришло время для обновления сего приложения, все шло хорошо, пока не дошло до экспорта файлов в word. Там используется Word.Application, а вот и кусочек кода:
Set Wrd = Server.CreateObject("Word.Application")
Wrd.DisplayAlerts = False
Wrd.Application.Options.Pagination = False
Wrd.Application.ScreenUpdating = False
Response.Write IsObject(Wrd)
Последняя строка возвращает "False", что собственно означает - все плохо.
Все было перенесено на чистый, тестовый сервер. Отсюда возникют вопросы:
Нужно устанавливать office 2003? Установил, без изменений.
Нужно ли подключить каким-то образом библиотеку office.interop.word? Как? У меня нет проекта в visual studio. Приложение стоит на win srv 2008r2, iis 7.
Нашел решение:
1. Windows "Start | Run | dcomcnfg" to start DCOM configuration.
2. Go to "Component Services | Computers | My Computer | DCOM Config",
right-click "Microsoft Word 97 - 2003 Document" and select "Properties".
3. Go to "Identity" tab page, among the three radio buttons "The interactive user",
"The launching user" and "This user", select the last one, and put in the user
who installed Office onto this server/PC. This is one of the tricks otherwise
you will get errors once the backend code (such as ASP.NET) tries to invoke
the Word DCOM component while this user is not logged in. When you test on
your development PC using Visual Studio this error will never happen because
you installed Office and you are always logged in when you test.
4. Go to the "Security" Tab, on the "Launch and Activation Permissions" group box,
add the identity which runs your website - the one you found out earlier - something
like "NETWORK SERVCIE", and allow local launch and activation. Some link also
mentioned adding "IUSR_".
Не помогло, решил переустановить office теперь в DCOM нет "Microsoft Word 97 - 2003 Document"
Установил:
- Office профессиональный выпуск 2003
- Office 2003 web components
- Office 2010 PIA
- Office Enterprise 2007
UPD У меня уже кончились идеи, в чем может быть проблема? Может стоит переписать на других библиотеках?