問題は、参照 DLL のいくつかが Azure VM にないためにのみ発生する可能性があるため、パッケージ (EXE + DLL) を展開するときに、すべてのコンポーネントがシステムに登録されていることを確認する必要があります。RDP を使用して Azure VM にログインし、展開がどのように機能するかをテストできることは確かに良いことですが、Web/worker を介してパッケージを展開し、worker ロールが適していると思われる場合に最適です。
EXE が機能しなかった理由を調べるには、さらに掘り下げる必要があります。ライブラリとプロセスに関する詳細を提供していただければ、参考になるかもしれませんが、上記の情報は提案を提供するものではありません。
このような問題を解決するには、次のことを行う必要があります。
- zip ファイルを作成し、アプリケーションに必要な参照 DLL/EXE、静的ファイルをすべて含めます
- Worker ロールを作成し、この zip ファイルをコンテンツとして追加し、そのプロパティ Copy local を true に設定します。
CMD バッチ ファイルを Azure プロジェクトに追加し、すべての手順を次のように記述します。
3.1. ファイルをローカル フォルダーに解凍します。 3.2. Regsvr32 プロセス 3.3 を使用してすべての DLL を登録します。exeをProgramEntryPointとしてServiceDefinition.csdefにセットアップします
EXE を ProgramEntryPoint として使用すると、ワーカー ロールのホスト プロセスがそれを起動して監視します。設定は次のようになります。
<Runtime executionContext="limited">
<EntryPoint>
<ProgramEntryPoint commandLine="your_exe_name.exe" setReadyOnProcessStart="true" />
</EntryPoint>
</Runtime>
上記の設定が完了したら、Azure パッケージをデプロイしてから RDP を Azure VM にデプロイし、アプリケーションに問題があるかどうかをテストできます。