2012-03-22 1 views
0

У меня есть сторонняя веб-страница Захват экрана DLL от http://websitesscreenshot.com/, который позволяет мне настраивать URL-адрес и сохранять страницу в файл изображения. Я переместил этот код в свой проект на основе Azure, и когда я запустил его в своем изолированном блоке Devbox и сохранил его в блоке Azure, все в порядке. Но когда я нажимаю биты на мой живой сервер на Azure, он терпит неудачу.Как опубликовать MSHTHML.dll и SHDOCVW.dll для 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 в роли Web, вы добавляете DLL в проект Web-роли так же, как добавление изображения (выберите добавить существующие элементы). Затем убедитесь, что для параметра «Действие сборки» установлено значение «Содержимое». Это говорит Visual Studio , чтобы скопировать DLL-файл в выходной пакет.

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

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

EDIT # 1: получается, что наша проблема не была связана с MSHTML.dll или Shdocvw.dll отсутствует Лазурный сервер. Они там.

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

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

ответ

1

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

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

HTH

+0

Благодарим за эту обратную связь. Мы попробуем завтра и посмотрим, работает ли это. В прошлом году у нас были проблемы с регистрацией другой DLL, но статья, с которой вы связались, похоже, дает хорошее резюме о том, как это сделать. Благодарю. –

+0

Как отмечено в «Редактировании №1» в OP, наша проблема не связана с отсутствующими DLL на сервере. Но я все равно принимаю ваш ответ, так как он затрагивает мой первоначальный вопрос, даже если нам не нужно было идти по этому пути. –

Смежные вопросы