Взаимодействие Excel Com ASP.Net Не удается записать файл на диск.Разрешения?

StackOverflow https://stackoverflow.com/questions/1848939

Вопрос

У меня есть довольно простая веб-форма, которая позволяет пользователям выбирать отчеты, один конкретный отчет, который они хотят получить в xls с красивым форматированием вместо CSV.Я настроил отчет, используя COM-ВЗАИМОДЕЙСТВИЕ с Excel 2007.Он работает на моем локальном компьютере и может записать файл, но на веб-сервере он завершается с этой ошибкой:

Microsoft Office Excel не может открыть или сохранить больше никаких документов из-за нехватки доступной памяти или дискового пространства.

• Чтобы освободить больше памяти, закройте книги или программы, которые вам больше не нужны.

• Чтобы освободить место на диске, удалите файлы, которые вам больше не нужны, с диска, на который вы сохраняете.

На сервере достаточно места на диске, поэтому я не думаю, что дело в этом - может ли это быть проблемой с разрешениями?Я увеличил учетные записи ASPNET и СЕТЕВЫХ СЛУЖБ, чтобы иметь доступ на запись и изменение к папке, в которую мы сохраняем отчеты, но по-прежнему без радости.Есть какие-нибудь идеи?

Нужно ли мне вызывать com-объект с определенной учетной записью пользователя или, может быть, повысить уровень вызовов взаимодействия до учетной записи администратора?Есть какие-нибудь идеи, как это сделать?

Это было полезно?

Решение

возможно, вы захотите использовать олицетворение для вашего процесса ASPNET;вот некоторая информация и пример о том, как это сделать: завершение процесса win из консольного приложения C #:Как мне установить разрешения? дополнительная информация о олицетворении Как реализовать олицетворение в приложении ASP.NET

Другие советы

Извините, ребята, я с этим разобрался.

Серж, ты уже на полпути к цели.В итоге я запустил Excel от имени администратора:

в службах компонентов выберите приложение Excel и выберите администратора в качестве пользователя, который его запускает.Кажется, за неделю использования он заработает нормально :)

Спасибо всем!

Устройство электронных таблиц для .NET позволит вам сохранять рабочие книги xls и xlsx непосредственно в поток ответов с помощью IWorkbook.SaveToStream.Это все безопасный управляемый код C #, поэтому нет необходимости запускать что-либо от имени администратора, и вы не столкнетесь с проблемами, которые возникают при взаимодействии Excel COM на сервере ASP.NET.

Вы можете ознакомиться с некоторыми простыми ASP.NET Примерами отчетов Excel (C # и VB) с использованием SpreadsheetGear здесь и скачайте бесплатную пробную версию здесь.

Отказ от ответственности:Я владелец SpreadsheetGear LLC

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top