Создать App_Data и зарегистрировать приложение Excel при развертывании ASP.NET? (IIS7)
Я развертываю приложение ASP.NET MVC3 в IIS7. Я уже развернул другие приложения, но они никогда не использовали папку App_Data или какой-либо дополнительный компонент, такой как библиотека Interop.
Я использовал развертывание одним щелчком мыши и подал в суд на пул приложений по умолчанию. Когда я запускаю приложение, я сразу же получаю сообщение об ошибке:
[веб-доступ] Извините, при обработке вашего запроса произошла ошибка.
[просмотреть из IIS7] Не удалось найти часть пути 'D:\Data\Apps\OppUpdate\App_Data\Test.xlsx'.
Затем я вручную добавил папку App_Data в каталог развертывания, и приложение запускается регулярно. Затем, когда дело доходит до taks, который использует библиотеку Interop, я получаю следующую ошибку:
[веб-доступ] Извините, при обработке вашего запроса произошла ошибка.
[просмотрите из IIS7] Получение фабрики классов COM для компонента с CLSID {00024500-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
Есть ли способ автоматически добавить папку App_Data при использовании развертывания в 1 клик? Как я могу зарегистрировать услуги Interop?
Спасибо вам,
Francesco
1 ответ
Очевидно, проблема связана с Server 2008. Приложение Excel, которое будет выполняться на стороне сервера, вызывает всплывающее окно безопасности, которое теперь присутствует в MS OS, такой как Win 7 и Vista. Это диалоговое окно, которое отображается пользователям каждый раз, когда они запускают приложение, и предупреждает их об ущербе, который может нанести недоверенное приложение на их ПК. Очевидно, что когда приложение, в данном случае Excel, запускается другим приложением, в данном случае веб-приложением, диалоговое окно не появляется, и сервер не получает разрешение на запуск Excel.
Решение этой ужасающей ошибки в Microsoft IIS & Excel является потрясающим:
Создайте каталог "C:\Windows\SysWOW64\config\systemprofile\Desktop". Установите разрешения на полный доступ для рабочего стола каталога (например, в Win7, IIS 7 и DefaultAppPool установите разрешения для пользователя "IIS AppPool\DefaultAppPool").
источник: http://forums.iis.net/t/1148371.aspx