У меня есть программа, работающая как служба в IIS в Windows Server 2008 R2. В программе нет проблем с созданием отчета в Excel. Проблема возникает, когда он пытается получить доступ к только что созданному Excel. Это дает пользователям ошибку 80070005 прямо в этой строке кода:
Excel.Application excelSS = null;
excelSS = new Excel.Application(); <-- Error
Поскольку на тот момент программа еще не пыталась получить доступ к файлу Excel, я считаю, что проблема не связана с отсутствием прав доступа к файлу. Я считаю, что проблема может быть связана с поиском программы Excel. Возможно, это связано с тем, что Excel является 32-разрядным, а операционная система Windows — 64-разрядной. Я не уверена.
Странно то, что у меня нет проблем с просмотром отчета Excel через IIS. У другого айтишника тоже нет проблем с этим. Но все обычные пользователи сталкиваются с этой проблемой, пытаясь сделать то же самое. Это все указывает на высокую вероятность того, что данная проблема связана с "правами доступа". Если это связано с настройкой Excel, я бы предположил, что у всех, включая меня, будет такая же проблема. Это очень озадачивает.
Я уже испробовал все советы, которые смог найти в Интернете:
Убедитесь, что пулы приложений в IIS используют учетную запись пользователя IIS APPPOOL\DefaultAppPool.
Добавьте папку «Рабочий стол» в system32 и SysWOW64 в config\systemprofile и убедитесь, что учетная запись пользователя IIS APPPOOL\DefaultAppPool имеет доступ для чтения/записи к этим папкам.
Запустите DCOM-Config и назначьте права локального доступа/запуска/активации для IIS APPPOOL\DefaultAppPool в разделе COM-Security. И убедитесь, что и 32-разрядная, и 64-разрядная версия DCOM-Config получают эти настройки.
Из-за того, что пользователи используют «Аутентификацию Windows» для запуска программы в IIS, я также удостоверяюсь, что пользователи могут использовать свою учетную запись для доступа к папке на сервере IIS, в которой хранится файл Excel.
Я даже добавляю IIS APPPOOL\DefaultAppPool в группу локальных администраторов.
Единственный совет, который я не могу попробовать, заключается в том, что я не могу найти «Приложение Microsoft Excel» в списке программы DCOM-Config («Службы компонентов» -> «Компьютеры» -> «Мой компьютер» -> «Конфигурация DCom»). Я должен добавить права запуска/активации доступа к IIS APPPOOL\DefaultAppPool в «Приложение Microsoft Excel» в этом списке. Но почему-то "Приложение Microsoft Excel" в списке нет. Я пытался найти его в DCOM-Config в папках System32 и SysWOW64. Это "кажется" похоже на проблему. Но я не уверен в этом из-за того, что у меня нет проблем с просмотром отчета Excel с использованием моей учетной записи пользователя. Если бы что-то было не так с настройками в Excel, я бы подумал, что никто из нас не сможет просмотреть отчет Excel.
У меня не было этой проблемы, когда у меня была эта программа в Windows Server 2003 R2 - 32-разрядная версия или в 32-разрядной версии Windows XP.
Я понимаю проблему, связанную с тем, что Microsoft хочет, чтобы люди не использовали Office Automation в Windows Server 2008. И Microsoft хочет, чтобы люди использовали XML или что-то в этом роде. Но я также понимаю, что люди пробовали это и могут обойти это. Поскольку я не являюсь разработчиком этой программы, я действительно не хочу начинать изменять эту программу. Поэтому я хотел бы иметь возможность заставить существующую программу работать.
Пожалуйста помоги. Заранее спасибо.
Джей Чан