Создать 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

Другие вопросы по тегам