Я запускаю веб-приложение C # ASP.NET 4.5 в 64-разрядной версии Windows 7 с использованием IIS 7.5. Пул приложений, который он использует, называется «ASP.NET v4.0», а его идентификатор - ApplicationPoolIdentity. В приложении используется MS Office Interop (библиотека объектов Microsoft Excel 14.0).
В строке wBook = wBooks.Add(Missing.Value);
выдается следующая ошибка:
Microsoft Excel не может открывать или сохранять другие документы из-за нехватки доступной памяти или места на диске.
u2022 Чтобы освободить больше памяти, закройте книги или программы, которые вам больше не нужны.
u2022 Чтобы освободить место на диске, удалите файлы, которые вам больше не нужны, с диска, на который вы сохраняете: в Microsoft.Office.Interop.Excel.Workbooks.Add (шаблон объекта)
1) Я дал учетной записи IIS apppool \ ASP.NET v4.0 полный контроль над приложением MS Excel в DCOM Config.
2) Я предоставил IIS apppool \ ASP.NET v4.0 полный контроль над 'C: \ Windows \ SysWOW64 \ config \ systemprofile' и создал в нем папку рабочего стола.
3) Мне нужно продолжать использовать Interop, хотя это не рекомендуется.
4) Приложение отлично работает на Windows Server 2003 / Windows XP 32-bit.
5) На машине установлен MS Office 2010 (64-битная, пробная версия).
6) Я бы предпочел не менять приложение. удостоверение пула от ApplicationPoolIdentity до сетевой службы и т. д. ApplicationPoolIdentity - это новый тип удостоверения в IIS 7, который рекомендуется.
Он отлично работает, если я выбираю «Интерактивный пользователь» (я вошел в систему как администратор) в DCOM Config, но это вызывает другие проблемы. Мне нужно использовать «Запускающий пользователь», то есть ASP.NET v4.0. Похоже, это проблема с разрешением.
Пожалуйста помоги. Спасибо.