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