Использование NetOffice.PowerPointApi в службе приложений Azure

Я написал код для сохранения всех слайдов презентации в формате jpeg. Он хорошо работает в Visual Studio локально в моей системе, но когда я развертываю его в службе приложений Azure, я получаю внутреннюю ошибку сервера 500.

  • IIS получил запрос; однако во время обработки запроса произошла внутренняя ошибка. Основная причина этой ошибки зависит от того, какой модуль обрабатывает запрос и что происходило в рабочем процессе, когда эта ошибка произошла.
  • IIS не смог получить доступ к файлу web.config для веб-сайта или приложения. Это может произойти, если разрешения NTFS установлены неправильно.
  • IIS не смог обработать конфигурацию для веб-сайта или приложения.
  • У аутентифицированного пользователя нет разрешения на использование этой библиотеки DLL.
  • Запрос сопоставлен с управляемым обработчиком, но .NET Extensibility Feature не установлен.
  • Код:

    using pptd = NetOffice.PowerPointApi;
    using NetOffice.PowerPointApi.Enums;
    using NetOffice.OfficeApi.Enums;
    
     public void genThumbnails(string originalfileName,string renamedFilename, string dirPath)
                {
                
                    
                    pptd.Application pptApplication = new pptd.Application();
                    pptd.Presentation pptPresentation = pptApplication.Presentations.Open(dirPath + renamedFilename, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
                    int i = 0;
                    foreach (pptd.Slide pptSlide in pptPresentation.Slides)
                    {
    
                        pptSlide.Export(dirPath + originalfileName + "_slide" + i + ".jpg", "jpg", 1280, 720);
                        i++;
    
    
                    }
                    pptPresentation.Close();
                }
    

    Какую ошибку я делаю? Требуется ли для пакета NetOffice установленный на сервере MS Office, например Office.Interop?


    person Harishankar H    schedule 06.12.2020    source источник


    Ответы (1)


    Стандартные веб-приложения для Windows и Linux использовали благословенные образы операционных систем. В рамках проекта PaaS клиенты ограничены в том, что они могут запускать, поскольку нет возможности взаимодействия с MS Office, а также потому, что веб-приложения Azure являются песочницей.

    Я предлагаю создать образ контейнера, который имеет необходимые зависимости, а затем развернуть свой собственный контейнер в Контейнер веб-приложений Azure.

    person Bryan Trach-MSFT    schedule 17.12.2020
    comment