Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mshtml.IHTMLElement периодически исключение, исключение при получении атрибута 
:(
    Опции темы
psn
Дата 19.10.2009, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 1.9.2008

Репутация: нет
Всего: нет



Периодически выскакивают исключения при получении атрибута:
UnauthorizedAccessException (Exception from HRESULT: 0x80070005)

Например:

Код

url = (string)((from element in GetTags(base.htmlManager.GetHtmlDocument(url).all, Tag.img)
                      where (int)element.getAttribute("hspace", 0) == 2
                      select element).ElementAt<IHTMLElement>(0).getAttribute("SRC", 0));



В строке:

Код

(int)elements.getAttribute("hspace", 0) == 2


Проявляется нестабильно, т.е. может выскочить может нет, данные теже.

Используется: Framework 3.5 sp1
OC: Windows XP (IE v6) и Windows 7 (IE версию не посмотрел)

Может кто сталкивался с подобным, в нете есть подобные вопросы но без ответов (http://www.aspnetmania.com/Forums/ForumMessage/365114.html).





Это сообщение отредактировал(а) psn - 19.10.2009, 09:38
PM MAIL   Вверх
diadiavova
Дата 19.10.2009, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Возможно двойку в кавычки надо взять.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
psn
Дата 19.10.2009, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 1.9.2008

Репутация: нет
Всего: нет



тоже подумал убрать преобразование к int, сегодня протестирую, теперь так:

Код

         url = (string)((from elements in GetTags(base.htmlManager.GetHtmlDocument(url).all, Tag.img)
                                    where string.Equals(elements.getAttribute("hspace", 0), "2")
                                    select elements).ElementAt<IHTMLElement>(0).getAttribute("SRC", 0));




PM MAIL   Вверх
psn
Дата 19.10.2009, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 1.9.2008

Репутация: нет
Всего: нет



Не помогло, стало реже но все равно вылетает

Это сообщение отредактировал(а) psn - 19.10.2009, 20:42
PM MAIL   Вверх
diadiavova
Дата 19.10.2009, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Я посмотрел, что за ошибка - "access denied error". То бишь доступ запрещён. Уж не знаю, с чем это связанно, наверно в отладчике надо смотреть, но для начала можно прото обработать ошибку, может всё и будет работать без проблем.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
psn
Дата 20.10.2009, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 1.9.2008

Репутация: нет
Всего: нет



Я сделал игнорировать исключение, некоторые картинка при этом с сайта не загрузятся, придется вручную, будет время, перепишу все. При использовании условия string.Equals(elements.getAttribute("hspace", 0), "2") в некоторых случае возникает исключение, что возвращаемый объект имеет тип System.Int32 и к строке преобразован, не может, хотя структура html везде одинакова. 
PM MAIL   Вверх
diadiavova
Дата 20.10.2009, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Вообще-то в хтмл есть 2 тэга отображающих картинку. В mshtml это - два разных класса
mshtml.HTMLImgClass
mshtml.htmlInputImageClass

Возможно картинки не грузятся из-за того, что ты только один тэг извлекаешь, а в документе присутствуют оба. Тут в коде не всё понятно, но картинки можно вытащить при помощи свойства документа

mshtml.HTMLDocumentClass.images


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0674 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.