0

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 ベースのレンダリングを排除しました)、先に進むことができました。

4

1 に答える 1

1

MSDNフォーラムのスレッドで言及されている解決策は正しいと思います。SDKがそれらをパッケージ化してクラウド上のVMにデプロイできるように、それらをプロジェクトファイルの一部として配置する必要があります。

ただし、それらがCOMであり、登録する必要がある場合は、スタートアップ機能を使用してregisterコマンドを呼び出すことをお勧めします。http://msdn.microsoft.com/en-us/hh351539を確認してください

HTH

于 2012-03-22T06:36:15.133 に答える