0

プレゼンテーションのすべてのスライドを jpeg として保存するコードを作成しました。Visual Studio ではシステムのローカルで問題なく動作しますが、Azure アプリ サービスにデプロイすると、500 内部サーバー エラーが発生します。

  • IIS が要求を受け取りました。ただし、要求の処理中に内部エラーが発生しました。このエラーの根本的な原因は、要求を処理するモジュールと、このエラーが発生したときにワーカー プロセスで何が起こっていたかによって異なります。
  • IIS は、Web サイトまたはアプリケーションの web.config ファイルにアクセスできませんでした。これは、NTFS アクセス許可が正しく設定されていない場合に発生する可能性があります。
  • IIS は、Web サイトまたはアプリケーションの構成を処理できませんでした。
  • 認証されたユーザーには、この DLL を使用する権限がありません。
  • 要求はマネージ ハンドラーにマップされていますが、.NET 拡張機能がインストールされていません。
  • コード:

    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 パッケージには、Office.Interop のようにサーバーに MS Office をインストールする必要がありますか?

    4

    1 に答える 1

    2

    標準の Windows と Linux の Web アプリでは、Blessed オペレーティング システム イメージが使用されていました。PaaS 設計の一部として、MS Office の相互運用性が存在せず、また Azure Web Apps がサンドボックスであるため、お客様が実行できるものは限られています。

    私の提案は、必要な依存関係を持つコンテナー イメージを作成してから、カスタム コンテナーをAzure Web App Containerにデプロイすることです。

    于 2020-12-17T00:56:32.143 に答える