http://websitesscreenshot.com/からサード パーティの Web ページスクリーン キャプチャ DLLを使用して、URL をターゲットにしてページを画像ファイルに保存できます。このコードを Azure ベースのプロジェクトに移動しました。ローカルのサンドボックス化された開発ボックスで実行し、Azure BLOB に保存すると、すべて問題ありません。しかし、ビットを Azure 上のライブ サーバーにプッシュすると、失敗します。
これは、 MSHTML.dllおよび/またはSHDOCVW.dllが Azure 構成にないためだと思います。
これらのライブラリ (および依存するバイナリ) をAzureに移行するにはどうすればよいですか?
MSFT フォーラムで次のアドバイスを見つけましたが、まだ試していません。http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/0344dcff-6fdd-4479-a3b4-3e89750a92f4/
こんにちは、クラウドで mshtml を試していません。ただし、一般的に言えば、Web ロールでネイティブ dll を使用するには、画像を追加するのと同じように dll を Web ロール プロジェクトに追加します ([既存のアイテムの追加] を選択します)。次に、Build Action が Content に設定されていることを確認します。これにより、DLL ファイルを出力パッケージにコピーするように Visual Studio に指示されます。
また、依存関係を注意深く確認してください。ネイティブ コードに関連する多くの問題は、特定の VC++ ランタイム dll などの依存関係の欠落が原因で発生します。
証明されていない解決策で1日か2日を燃やす前に、まずここで質問したいと思いました.
編集 #1: 私たちの問題は、MSHTML.dll または SHDOCVW.dll が Azure サーバーにないことに関連していないことが判明しました。彼らはそこにいます。
問題は、デフォルトで新しいサーバー インスタンスのIE セキュリティ強化機能が有効になっており、これがサード パーティの dll によるスクリプトの実行を妨げていたことです。そのため、強化された IE セキュリティ構成設定をオフにする必要がありました。これも重要な演習です。
その間に、画面キャプチャを作成する必要がある機能のサーバー側バージョンをサイトに作成し (たとえば、クライアントでの UI の JSON ベースのレンダリングを排除しました)、先に進むことができました。