2 つの Azure Web ジョブがあります。1 つ目は、PDF を取得して個々のページ イメージに分割し、2 つ目の Web ジョブが個々のページを処理するように別のメッセージをキューに入れるように指示する受信メッセージを取得します。QC インスタンスでは問題なく動作しましたが、本番環境に移行しようとすると、2 番目のジョブで奇妙なエラーが発生し始めましたが、一貫性はありませんでした。最初のジョブが実行され、ファイルがページ イメージに分割されます。それはうまくいっています。すべてのページ イメージが作成され、すべてのページ メッセージがキューに入れられることを確認しました。ただし、2 番目のジョブでは、一部のメッセージのみが正しく処理されています。残りは、WebJob 診断でこのエラーを示します。
Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Microsoft.Azure.WebJobs.Host.FunctionInvocationException: 関数の実行中に例外が発生しました: Functions.ProcessBatchPage ---> System.Data.SqlClient.SqlException: ネットワーク関連またはインスタンス固有のエラーが発生しましたSQL Server への接続の確立中。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: SQL ネットワーク インターフェイス、エラー: 52 - ローカル データベース ランタイムのインストールが見つかりません。SQL Server Express が正しくインストールされ、ローカル データベース ランタイム機能が有効になっていることを確認してください。) ---> System.ComponentModel.Win32Exception: Theシステムは指定されたファイルを見つけることができません
しかし、奇妙なことに、このエラーはローカル データベース ランタイムと SQL Server Express に言及しており、コードのどこにも参照していません。システムは Azure SQL DB を指しています。仕事は ADO.Net で、接続文字列をハードコーディングして、構成ベースの接続文字列の問題を排除しようとしました。しかし、奇妙なのは、メッセージの特定の部分にしか発生しないことです。他は完璧に処理します。
最後に、ジョブをローカルでデバッグして実行し (まだ Azure 上の実際のキューと DB を指している)、同じ問題が発生しました。ただし、ジョブはコードの最初の行としてジョブ ID を含むコンソール行を出力します。正常に処理されたジョブについては、この writeline が表示されます。失敗した人には、何も見えません。ジョブが実際に正しく起動していないようです。(失敗したジョブの実行時間も 50 ~ 100 ミリ秒と非常に短い)