Как исправить "Microsoft Excel не может открывать или сохранять больше документов"

Я запускаю веб-приложение 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. Похоже, это проблема с разрешением.

Пожалуйста помоги. Спасибо.


person engg    schedule 13.09.2012    source источник
comment
На диске достаточно места и памяти, так что проблема не в этом. Так что я пока не смог это исправить.   -  person engg    schedule 14.09.2012
comment
Вам почти наверняка потребуется изменить удостоверение, под которым работает пул приложений, на пользователя, который ранее вошел в систему в интерактивном режиме, и запустить Excel, чтобы иметь возможность использовать Excel из веб-приложения. В качестве альтернативы вы можете изменить конфигурацию DCOM для конкретного пользователя, а не запускать или интерактивно, и предоставить ему данные для входа в систему для вашего пользователя-администратора, чтобы проверить, имеет ли это какое-либо значение.   -  person Nanhydrin    schedule 14.09.2012
comment
Спасибо Nanhydrin, это, вероятно, сработает. Почему ApplicationPoolIdentity не работает?   -  person engg    schedule 15.09.2012
comment
Может быть, вы каждый раз используете несколько экземпляров Excel для создания документа?   -  person Ruchi    schedule 17.11.2012
comment
Нет, есть только один случай.   -  person engg    schedule 30.11.2012
comment
@Ken, вы не должны доверять каждому сообщению об ошибке как библии. Смотрите мой ответ. Проблема НИЧЕГО не связана с памятью или дисковым пространством.   -  person Tony_Henrich    schedule 05.07.2013


Ответы (7)


Щелкните правой кнопкой мыши файл в проводнике, выберите Properties, затем вкладку General и нажмите кнопку Unblock. Это сообщение об ошибке вводит в заблуждение.

person Tony_Henrich    schedule 05.07.2013
comment
Также, если вы не видите эту кнопку, это означает, что файл не заблокирован, и вам следует поискать другое решение. - person Pavel K; 15.11.2013
comment
как насчет после развертывания моего приложения. это не могло быть хорошим решением, которое кажется машинно-зависимым. Я разместил свое приложение на Windows Azure и получаю эту ошибку, что делать? - person Neo; 18.05.2014
comment
@PavelK Какой файл я должен щелкнуть правой кнопкой мыши? Не могли бы вы уточнить? - person silkfire; 09.10.2014

Перейдите к этому разделу в редакторе реестра (Выполнить | Regedit) HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Папки пользовательской оболочки

измените ключ Cache на что-то вроде C: \ Windows \ Temp

Моя аналогичная проблема решилась вот так.

С уважением,

Рипли

person Ripley    schedule 22.04.2013
comment
Был так зол, пока не увидел это, спасатель жизни! - person Dr Archer; 16.03.2017
comment
Сработало для меня после ЧАСОВ пробовать другие вещи. Спасибо! (p.s. Я изменил и HKCU, и HKLM, поэтому я не уверен, что сработало ... поскольку никто не будет входить в систему, когда он работает по-настоящему ... CU не будет). - person AWhatley; 15.11.2019
comment
АБСОЛЮТНЫЙ ГЕРОЙ! Я не мог открыть ни один из моих документов Excel. Пробовал все, что предлагалось в Интернете. Наконец-то это сработало. - person Luigi Plinge; 04.05.2020

У меня была такая же проблема, на моем сервере не было проблем с памятью, наконец, я смог исправить ее, выполнив следующие шаги

  1. На сервере хостинга приложений перейдите в его «Службы компонентов».
  2. введите описание изображения здесь

3. Найдите справа «Приложение Microsoft Excel».

4.Откройте его свойства, щелкнув правой кнопкой мыши

5. На вкладке «Удостоверение» выберите опцию «Интерактивный пользователь» и нажмите кнопку «ОК».

Проверьте еще раз. Надеюсь, это поможет

ПРИМЕЧАНИЕ. Но теперь вы можете получить еще одну ошибку COM: «Получение фабрики классов COM для компонента ...». В этом случае просто установите личность для этого пользователя и введите имя пользователя и пароль пользователя, у которого есть достаточные права. В моем случае я вошел в группу опытных пользователей.

person Nithin Paul    schedule 26.03.2015

Тестируйте вот так. Иногда возникает проблема с разрешением.

cmd => dcomcnfg

Нажмите

Службы компонентов> Вычисления> Мой компьютер> Конфигурация Dcom> и выберите приложение micro soft Excel.

Щелкните правой кнопкой мыши приложение Microsoft Excel

Свойства> Дать разрешения Asp.net

Выберите Таблица идентичности> Выбрать интерактивного пользователя> выберите ОК

person Boopathi.Indotnet    schedule 07.10.2015
comment
Я не смог найти часть Разрешения Asp.net. - person KZee; 29.02.2020

Я тоже столкнулся с тем же сценарием и нашел два решения после нескольких поисков в Google. Надеюсь это поможет.

Способ 01:

Прежде чем пытаться открыть файл в Excel, найдите его в проводнике Windows. Щелкните файл правой кнопкой мыши и выберите «Свойства». Внизу вкладки «Общие» нажмите кнопку «Разблокировать». Как только вы разблокируете файл, Windows должна помнить об этом, и Excel больше не будет спрашивать вас. Этот параметр доступен для некоторых типов файлов, но недоступен для других. Если у вас нет кнопки Разблокировать, используйте Способ 2.

Способ 02:

Этот вариант лучше, если вы обычно храните загруженные файлы Excel в одной папке. В Excel щелкните Файл »Параметры» Центр управления безопасностью »Параметры центра управления безопасностью» Надежные расположения. Щелкните Добавить новое местоположение. Перейдите в папку, в которой вы храните файлы Excel, выберите Подпапки в этом расположении также являются доверенными и нажмите OK.

person Dulith De Costa    schedule 01.04.2019
comment
Вы должны по крайней мере предоставить ссылку при копировании и вставке из источника < / а>. - person LoMaPh; 18.04.2019

Если ничего из вышеперечисленного не помогло, попробуйте и следующее:

  • В Component services >Computes >My Computer>Dcom config>Microsoft Excel Application>Properties перейдите на вкладку «Безопасность», нажмите «Настроить» во всех трех разделах и добавьте пользователя, который хочет запускать приложение, и предоставьте пользователю полные разрешения.

  • Перейдите к C:\Windows\Temp и убедитесь, что он существует и не запрашивает ввод.

person LoMaPh    schedule 18.04.2019

После предоставления необходимых разрешений в конфигурациях DCOM мне также нужно было изменить идентификатор моего приложения в IIS на пользовательский аккаунт

person MohammadHossein R    schedule 19.10.2019