IronPDFでAzureファンクションをローカルでデバッグする
ローカルでAzureを実行する際の問題
この問題に遭遇した際によく見られる例外は「IronPdf.Native.Chrome.deployment.json という展開構成ファイルを見つける際のエラー」です。
推奨: .NET Core 3.1 をターゲットとする Windows ホスティングの Azure Function Apps を実行
必須: Visual Studio で Azure Function を作成する際に、デフォルトの "in-process" 構成を使用してください。 以下のように記載されている通り、最新バージョンのIronPDFは「アウト・オブ・プロセス」または「アイソレーテッドプロセス」で動作するAzure Functionsをサポートします。分離型ワーカーモデルでC# Azure Functionsを実行するためのガイドただし、古いバージョンはこれらの種類のAzure Functionsをサポートしていない可能性があります。
ローカルで Azure Functions を実行する際の依存関係の問題
ローカルでAzureを実行する場合、Azuriteを使用する(VS2022)またはAzure Storage Emulator(VS2019)、ストレージエミュレーターがデプロイに使用する追加のbinディレクトリが作成されます。 このディレクトリにはDLLファイルのみがコピーされるため、追加ファイルを必要とするソフトウェアは機能せず、上記の例外が発生する可能性があります。
この問題を解決するには、ランタイムディレクトリをストレージエミュレータで使用される別のbinディレクトリにコピーしてください。 これをビルド後イベントとして行うことをお勧めします。(手順は下記を参照)ローカルで実行する時(再コンパイル/ビルドを行うと、binディレクトリが元の状態に戻ります。)クラウドにデプロイするときにこの問題は発生しません。
- 問題: Azure Functions プロジェクトをローカルで実行するとき、それが別の bin フォルダーを作成し、そのフォルダーから関数を実行します。 しかし、必要なすべてのファイルがその bin フォルダにコピーされるわけではありません。
- 例: C:\code\azure-functions-test にあるプロジェクトが C:\code\azure-functions-test\bin\Debug\netcoreapp3.1 にビルドされます
- 解決方法: C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\runtimes ディレクトリを C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\bin 内にも存在するようにコピーします。
-
上書きの確認が表示された場合、既存のファイルを上書きしてください。
ビルド後イベント
-
Azure Functions プロジェクトを右クリックし、プロパティを選択します。
-
イベントセクションまでスクロールダウンしてください
- 以下の内容を日本語に翻訳してください:
Post-build eventにXCOPY "$
を入力(ターゲットディレクトリ)ランタイム" "$(ターゲットディレクトリ)bin/runtimes" /S /E /Y /I /R /D