COMException when using Interop.SHDocVw

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Jay A. Moritz

    #1

    COMException when using Interop.SHDocVw

    I have an application that loads IE and iterates through web pages to
    retrieve information from the page then activates specific controls to
    retrieve the next page and iterate through that page for it's information,
    etc, etc.

    I have found many articles from people getting COMException errors when
    trying to use Interop.SHDocVw from a windows service, so it's pretty
    apparent to me that this is a difficult application to build, but I have yet
    to find an article that explains either an alternative way to retrieve
    information from a web page or that explains how to get Interop.SHDocVw to
    work from an agent. I have tried running the agent under my own user account
    that is a member of the machine Administrators group but I still get the
    error. I have included the error below if someone can make more sense out
    of it then I can.

    Thanks in advance,
    Jay A. Moritz
    Predictable Outcomes



    Timestamp: 7/8/2005 2:58:04 AM
    Message: HandlingInstanc eID: 8b1ce84e-9041-4b7d-a1b3-0a7be47db2b7
    An exception of type 'System.Runtime .InteropService s.COMException' occurred
    and was caught.
    -------------------------------------------------------------------------------------------
    07/08/2005 02:58:04
    Type : System.Runtime. InteropServices .COMException, mscorlib,
    Version=1.0.500 0.0, Culture=neutral , PublicKeyToken= b77a5c561934e08 9
    Message : The object invoked has disconnected from its clients.
    Source : Interop.SHDocVw
    Help link :
    ErrorCode : -2147417848
    TargetSite : Void Navigate2(Syste m.Object ByRef, System.Object ByRef,
    System.Object ByRef, System.Object ByRef, System.Object ByRef)
    Stack Trace : at SHDocVw.IWebBro wser2.Navigate2 (Object& URL, Object&
    Flags, Object& TargetFrameName , Object& PostData, Object& Headers)
    at
    pOrchestrator.D ataLinks.HTMLPa rser.GetHTMLFro mBrowser(Intern etExplorer& ie,
    Collection SiteRules, SiteURL SiteURL, Boolean IsFirstPage, Int32
    MaxNavigationDu ration)

    Additional Info:

    MachineName : HP-BIZ2
    TimeStamp : 7/8/2005 6:58:04 AM
    FullName : Microsoft.Pract ices.Enterprise Library.Excepti onHandling,
    Version=1.0.0.0 , Culture=neutral , PublicKeyToken= null
    AppDomainName : porchestratorag ent.exe
    ThreadIdentity :
    WindowsIdentity : NT AUTHORITY\LOCAL SERVICE

    Category: General
    Priority: 0
    EventId: 100
    Severity: Error
    Title:pSystem.E xception
    Machine: HP-BIZ2
    Application Domain: porchestratorag ent.exe
    Process Id: 2788
    Process Name: c:\program files\porchestr ator agent\porchestr atoragent.exe
    Win32 Thread Id: 1640
    Thread Name:
    Extended Properties:


  • Willy Denoyette [MVP]

    #2
    Re: COMException when using Interop.SHDocVw

    ShDocVw is not a server type component but a client type ActiveX component,
    that means it should be properly hosted inside a visual control like a Form.
    Services aren't able to host ActiveX controls.

    Willy.

    "Jay A. Moritz" <jmoritz@predic tableoutcomes.c om> wrote in message
    news:eZbVdj$gFH A.1248@TK2MSFTN GP12.phx.gbl...[color=blue]
    >I have an application that loads IE and iterates through web pages to
    >retrieve information from the page then activates specific controls to
    >retrieve the next page and iterate through that page for it's information,
    >etc, etc.
    >
    > I have found many articles from people getting COMException errors when
    > trying to use Interop.SHDocVw from a windows service, so it's pretty
    > apparent to me that this is a difficult application to build, but I have
    > yet to find an article that explains either an alternative way to retrieve
    > information from a web page or that explains how to get Interop.SHDocVw to
    > work from an agent. I have tried running the agent under my own user
    > account that is a member of the machine Administrators group but I still
    > get the error. I have included the error below if someone can make more
    > sense out of it then I can.
    >
    > Thanks in advance,
    > Jay A. Moritz
    > Predictable Outcomes
    >
    >
    >
    > Timestamp: 7/8/2005 2:58:04 AM
    > Message: HandlingInstanc eID: 8b1ce84e-9041-4b7d-a1b3-0a7be47db2b7
    > An exception of type 'System.Runtime .InteropService s.COMException'
    > occurred and was caught.
    > -------------------------------------------------------------------------------------------
    > 07/08/2005 02:58:04
    > Type : System.Runtime. InteropServices .COMException, mscorlib,
    > Version=1.0.500 0.0, Culture=neutral , PublicKeyToken= b77a5c561934e08 9
    > Message : The object invoked has disconnected from its clients.
    > Source : Interop.SHDocVw
    > Help link :
    > ErrorCode : -2147417848
    > TargetSite : Void Navigate2(Syste m.Object ByRef, System.Object ByRef,
    > System.Object ByRef, System.Object ByRef, System.Object ByRef)
    > Stack Trace : at SHDocVw.IWebBro wser2.Navigate2 (Object& URL, Object&
    > Flags, Object& TargetFrameName , Object& PostData, Object& Headers)
    > at
    > pOrchestrator.D ataLinks.HTMLPa rser.GetHTMLFro mBrowser(Intern etExplorer&
    > ie, Collection SiteRules, SiteURL SiteURL, Boolean IsFirstPage, Int32
    > MaxNavigationDu ration)
    >
    > Additional Info:
    >
    > MachineName : HP-BIZ2
    > TimeStamp : 7/8/2005 6:58:04 AM
    > FullName : Microsoft.Pract ices.Enterprise Library.Excepti onHandling,
    > Version=1.0.0.0 , Culture=neutral , PublicKeyToken= null
    > AppDomainName : porchestratorag ent.exe
    > ThreadIdentity :
    > WindowsIdentity : NT AUTHORITY\LOCAL SERVICE
    >
    > Category: General
    > Priority: 0
    > EventId: 100
    > Severity: Error
    > Title:pSystem.E xception
    > Machine: HP-BIZ2
    > Application Domain: porchestratorag ent.exe
    > Process Id: 2788
    > Process Name: c:\program files\porchestr ator agent\porchestr atoragent.exe
    > Win32 Thread Id: 1640
    > Thread Name:
    > Extended Properties:
    >
    >[/color]


    Comment

    • Jay A. Moritz

      #3
      Re: COMException when using Interop.SHDocVw

      Thank you Willy, but it does lead to a second question:

      How do I get information out of a web page when I need to do it from a
      windows service? Do you know of an object/class I can use?

      Thanks in advance,
      Jay A. Moritz


      "Willy Denoyette [MVP]" <willy.denoyett e@telenet.be> wrote in message
      news:OGwUdy$gFH A.2444@tk2msftn gp13.phx.gbl...[color=blue]
      > ShDocVw is not a server type component but a client type ActiveX
      > component, that means it should be properly hosted inside a visual control
      > like a Form. Services aren't able to host ActiveX controls.
      >
      > Willy.
      >
      > "Jay A. Moritz" <jmoritz@predic tableoutcomes.c om> wrote in message
      > news:eZbVdj$gFH A.1248@TK2MSFTN GP12.phx.gbl...[color=green]
      >>I have an application that loads IE and iterates through web pages to
      >>retrieve information from the page then activates specific controls to
      >>retrieve the next page and iterate through that page for it's information,
      >>etc, etc.
      >>
      >> I have found many articles from people getting COMException errors when
      >> trying to use Interop.SHDocVw from a windows service, so it's pretty
      >> apparent to me that this is a difficult application to build, but I have
      >> yet to find an article that explains either an alternative way to
      >> retrieve information from a web page or that explains how to get
      >> Interop.SHDocVw to work from an agent. I have tried running the agent
      >> under my own user account that is a member of the machine Administrators
      >> group but I still get the error. I have included the error below if
      >> someone can make more sense out of it then I can.
      >>
      >> Thanks in advance,
      >> Jay A. Moritz
      >> Predictable Outcomes
      >>
      >>
      >>
      >> Timestamp: 7/8/2005 2:58:04 AM
      >> Message: HandlingInstanc eID: 8b1ce84e-9041-4b7d-a1b3-0a7be47db2b7
      >> An exception of type 'System.Runtime .InteropService s.COMException'
      >> occurred and was caught.
      >> -------------------------------------------------------------------------------------------
      >> 07/08/2005 02:58:04
      >> Type : System.Runtime. InteropServices .COMException, mscorlib,
      >> Version=1.0.500 0.0, Culture=neutral , PublicKeyToken= b77a5c561934e08 9
      >> Message : The object invoked has disconnected from its clients.
      >> Source : Interop.SHDocVw
      >> Help link :
      >> ErrorCode : -2147417848
      >> TargetSite : Void Navigate2(Syste m.Object ByRef, System.Object ByRef,
      >> System.Object ByRef, System.Object ByRef, System.Object ByRef)
      >> Stack Trace : at SHDocVw.IWebBro wser2.Navigate2 (Object& URL, Object&
      >> Flags, Object& TargetFrameName , Object& PostData, Object& Headers)
      >> at
      >> pOrchestrator.D ataLinks.HTMLPa rser.GetHTMLFro mBrowser(Intern etExplorer&
      >> ie, Collection SiteRules, SiteURL SiteURL, Boolean IsFirstPage, Int32
      >> MaxNavigationDu ration)
      >>
      >> Additional Info:
      >>
      >> MachineName : HP-BIZ2
      >> TimeStamp : 7/8/2005 6:58:04 AM
      >> FullName : Microsoft.Pract ices.Enterprise Library.Excepti onHandling,
      >> Version=1.0.0.0 , Culture=neutral , PublicKeyToken= null
      >> AppDomainName : porchestratorag ent.exe
      >> ThreadIdentity :
      >> WindowsIdentity : NT AUTHORITY\LOCAL SERVICE
      >>
      >> Category: General
      >> Priority: 0
      >> EventId: 100
      >> Severity: Error
      >> Title:pSystem.E xception
      >> Machine: HP-BIZ2
      >> Application Domain: porchestratorag ent.exe
      >> Process Id: 2788
      >> Process Name: c:\program files\porchestr ator agent\porchestr atoragent.exe
      >> Win32 Thread Id: 1640
      >> Thread Name:
      >> Extended Properties:
      >>
      >>[/color]
      >
      >[/color]


      Comment

      • Cor Ligthert [MVP]

        #4
        Re: COMException when using Interop.SHDocVw

        Jay,

        You can use by instance the HTTPWebrequest/response classes

        \\\
        Module main
        Public Sub main()
        Dim myReg As Net.HttpWebRequ est = _
        DirectCast(Net. WebRequest.Crea te("http://www.google.com" ), _
        Net.HttpWebRequ est)
        Dim myResp As Net.HttpWebResp onse = _
        DirectCast(myRe g.GetResponse() , Net.HttpWebResp onse)
        Dim myStream As IO.Stream = myResp.GetRespo nseStream()
        Dim myreader As New IO.StreamReader (myStream)
        Dim mystring As String = myreader.ReadTo End()
        myResp.Close()
        End Sub
        End Module
        ///

        I hope this helps a little bit?

        Cor


        Comment

        Working...