Я видел аналогичную проблему при использовании mshtml.dll
, на которую ссылаются в наших проектах .NET, но ничего не имело отношения к этой конкретной ситуации. Я подозреваю, что проблема может иметь какое-то отношение к тому, что было сказано в этой теме (.net document write с mshtml) о том, что в моем случае в коклассе отсутствуют все связанные свойства/атрибуты. Особенность здесь в том, что я использую mshtml.HTMLInputElement
и набор его свойств/атрибутов при анализе объекта WebBrowser.Document
:
if (domElement is HTMLInputElement)
{
HTMLInputElement inputElement = (HTMLInputElement)domElement;
if (inputElement.name == null || inputElement.name.Trim() == string.Empty ||
inputElement.name.Contains("/") || inputElement.name.Contains("="))
{
...
}
}
Вышеупомянутое отлично работает на ПК для разработки (VS2008 3.5 SP1), где помимо свойства name
также успешно вызываются некоторые другие свойства, такие как type
и т. д., но когда приложение установлено под Windows 7, в которой есть все необходимые части фреймворка, я получаю COMException
:
==============
System.Runtime.InteropServices.COMException пересек собственную/управляемую границу Сообщение = Участник не найден. (Исключение из HRESULT: 0x80020003 (DISP_E_MEMBERNOTFOUND)) Source=mscorlib
ErrorCode=-2147352573 StackTrace: at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData) at mshtml.DisementpHTMLInput .get_name()
======================
Ни один из вызовов таких свойств, как name
, type
, сейчас не работает. Всегда выбрасывается одно и то же Interop.COMException
. Мне кажется, что та же проблема описана в документе .net, написанном с помощью mshtml.
Кто-нибудь знает правильный обходной путь для этой проблемы?
HTMLDocument
вместоHTMLInputElement
. Я переключился наIHTMLDocument2
, вроде работает. Это также похоже на какое-то обновление для Windows или IE, которое было выпущено, поскольку я начал получать это после применения обновлений. (Возможно, я обновился до IE 10.) И под конкретными типами, я думаю, вы имеете в виду конкретные COM-типы из mshtml. - person jpmc26   schedule 25.10.2013