Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

C/++/# Can't seem to make URL request from ElapsedEventHandler

  1. Nov 29, 2016 #1
    I've spent 10+ hours on trying to solve this and can't get it to work!

    In short, I have a method

    Code (Text):

            private async void LoadAndSavePage(object source, ElapsedEventArgs e)
            {
                 // ...
            }
     
    which is being called every 1 second when the Windows Service that contains it is running. I've confirmed that it is indeed being called; I can verify with

    Code (Text):

            private async void LoadAndSavePage(object source, ElapsedEventArgs e)
            {
                EventLog.WriteEntry("I got called!");
            }
     
    However, as soon as I try to get a web page, for example

    Code (Text):

            private async void LoadAndSavePage(object source, ElapsedEventArgs e)
            {
                string html = new WebClient().DownloadString("[PLAIN]http://physicsforums.com");[/PLAIN] [Broken]
                EventLog.WriteEntry(html);
            }
     
    it doesn't work. The function gets called as scheduled but it never gets to the point where it writes to the event log. Something about introducing a web request messes it up. I'm guessing maybe some type of permissions issue?

    I've tried with several libraries including .NET's WebClient and HtmlAgilityPack's HtmlWeb, I've tried with different URLs, etc.

    I know it doesn't have to do with the event having a maximum resolution time, for I've also tried

    Code (Text):

            private async void LoadAndSavePage(object source, ElapsedEventArgs e)
            {
                EventLog.WriteEntry("before sleep");
                Thread.Sleep(1500);
                EventLog.WriteEntry("after sleep");
            }
     
    and confirmed that the whole thing runs.
     
    Last edited by a moderator: May 8, 2017
  2. jcsd
  3. Nov 29, 2016 #2
  4. Nov 29, 2016 #3

    Mark44

    Staff: Mentor

    That would be my guess, but that's just a guess. In your following post, you suggest running the service as a NetworkService. I would give that a shot.
     
    Last edited by a moderator: May 8, 2017
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted



Similar Discussions: Can't seem to make URL request from ElapsedEventHandler
Loading...