Ответ 1
Щелкните правой кнопкой мыши файл с файловым проводником, выберите Properties
, затем General
и нажмите кнопку Unblock
. Это сообщение об ошибке очень вводит в заблуждение.
Я запускаю веб-приложение С# 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. Так что это похоже на проблему с разрешением.
Пожалуйста, помогите. Спасибо.
Щелкните правой кнопкой мыши файл с файловым проводником, выберите Properties
, затем General
и нажмите кнопку Unblock
. Это сообщение об ошибке очень вводит в заблуждение.
Перейдите к этому ключу в редакторе реестра (Run | Regedit) HKEY_CURRENT_USER\Программное обеспечение\Microsoft\Windows\CurrentVersion\Explorer\Папки пользовательской оболочки
измените ключ Кэш на что-то вроде C:\Windows\Temp
Моя аналогичная проблема была решена следующим образом.
Привет,
Рипли
У меня была такая же проблема, в моей серверной машине не было проблемы с памятью. Наконец, я смог ее исправить, выполнив следующие шаги.
3.Нажмите "Приложение Microsoft Excel" в правой части.
4.Откройте его свойства, щелкнув правой кнопкой мыши
вкладка 5.Under Identity выберите вариант интерактивного пользователя и нажмите кнопку "ОК".
Еще раз проверьте. Надеюсь, что это поможет.
ПРИМЕЧАНИЕ. Но теперь вы можете столкнуться с другой ошибкой COM "Получение COM-класса factory для компонента...". В этом случае просто установите идентификатор для этого пользователя и введите имя пользователя и пароль пользователя, обладающего достаточными правами. В моем случае я вошел в пользовательскую группу пользователей.
Проверьте, как это происходит. Иногда возникает проблема с разрешением.
cmd = > dcomcnfg
Нажмите
Службы компонентов > Вычислить > Мой компьютеp > Конфигурация Dcom > и выберите приложение micro soft Excel
Щелкните правой кнопкой мыши приложение Microsoft Microsoft Excel
Свойствa > Разрешить разрешения Asp.net
Выберите таблицу идентификаторов > Выберите интерактивного пользователя > выберите ok
Я тоже столкнулся с тем же сценарием и обнаружил два решения после поиска в Google несколько раз. Надеюсь это поможет.
Путь 01:
Прежде чем открывать файл в Excel, найдите его в проводнике Windows. Щелкните правой кнопкой мыши файл и выберите "Свойства". В нижней части вкладки Общие нажмите кнопку Разблокировать. После того, как вы разблокируете файл, Windows должна помнить, и Excel не должен спрашивать вас снова. Эта опция доступна для некоторых типов файлов, но не для других. Если у вас нет кнопки разблокировки, используйте способ 2.
Путь 02:
Этот вариант лучше, если вы обычно храните загруженные файлы Excel в одной папке. В Excel выберите Файл "Параметры" Центр управления безопасностью "Параметры Центра управления безопасностью" Надежные расположения. Нажмите Добавить новое местоположение. Перейдите в папку, в которой хранятся файлы Excel, выберите "Надежные папки" этого расположения и нажмите "ОК".
Если ничего из вышеперечисленного не помогло, попробуйте также:
В Component services >Computes >My Computer>Dcom config>Microsoft Excel Application>Properties
перейдите на вкладку "Безопасность", нажмите "Настройка" во всех трех разделах и добавьте пользователя, который хочет запустить приложение, и предоставьте пользователю полные разрешения.
Перейдите в C:\Windows\Temp
убедитесь, что он существует, и он не запрашивает ввод.
После предоставления необходимых разрешений в конфигурациях DCOM мне также нужно было изменить удостоверение моего приложения в IIS на настраиваемую учетную запись