Как опубликовать MSHTHML.dll и SHDOCVW.dll в Azure - PullRequest
0 голосов
/ 22 марта 2012

У меня есть сторонняя веб-страница DLL-файл захвата экрана из http://websitesscreenshot.com/, который позволяет настроить таргетинг на URL-адрес и сохранить страницу в файл изображения.Я переместил этот код в свой проект на основе Azure, и когда я запускаю его на своем локальном изолированном ящике разработчика и сохраняю в BLOB-объект Azure, все в порядке.Но когда я отправляю биты на свой действующий сервер в Azure, он выходит из строя.

Я думаю, это потому, что либо MSHTML.dll и / или SHDOCVW.dll отсутствует в моей конфигурации Azure.

Как я могу получить эти библиотеки (плюс любые зависимые двоичные файлы) до Azure ?

Я нашел следующий совет на форуме MSFT, ноеще не пробовал.http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/0344dcff-6fdd-4479-a3b4-3e89750a92f4/

Здравствуйте, я не пробовал mshtml в облаке.Но, вообще говоря, чтобы использовать нативную dll в веб-роли, вы добавляете dll в проект веб-роли так же, как добавляете изображение (выберите добавить существующие элементы).Затем убедитесь, что для Build Action установлено значение Content.Это говорит Visual Studio о необходимости копирования файла dll в выходной пакет.

Также тщательно проверяйте зависимости.Многие проблемы, связанные с нативным кодом, вызваны отсутствующими зависимостями, такими как конкретная DLL-библиотека времени выполнения VC ++.

Мысль, что я сначала спрошу здесь, прежде чем записать день или два на непроверенное решение.

РЕДАКТИРОВАТЬ # 1: оказывается, что наша проблема не была связана с MSHTML.dll или SHDOCVW.dll отсутствует на сервере Azure.Они там.

Проблема заключается в том, что по умолчанию для нового экземпляра сервера включена функция усиления безопасности IE , и это препятствовало выполнению нашего стороннего dll-скрипта.Поэтому нам нужно было отключить расширенные настройки конфигурации безопасности IE.Это также нетривиальное упражнение.

Тем временем мы только что создали версию функции сервера на нашем сайте, с которой нам нужно делать снимки экрана (например, мы устранили рендеринг пользовательского интерфейса на основе JSON).на клиенте), и мы смогли продолжить.

1 Ответ

1 голос
/ 22 марта 2012

Я думаю, что решение, упомянутое в ветке форума MSDN, является правильным. Вы должны поместить их как часть файлов вашего проекта, чтобы SDK упаковывал и развертывал их на виртуальной машине в облаке.

Но если они COM и их необходимо зарегистрировать, вам лучше вызвать команду register через функцию запуска. Пожалуйста, проверьте http://msdn.microsoft.com/en-us/hh351539

НТН

...