- #1
SlurrerOfSpeech
- 141
- 11
I've spent 10+ hours on trying to solve this and can't get it to work!
In short, I have a method
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
However, as soon as I try to get a web page, for example
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
and confirmed that the whole thing runs.
In short, I have a method
Code:
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:
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:
private async void LoadAndSavePage(object source, ElapsedEventArgs e)
{
string html = new WebClient().DownloadString("[PLAIN]http://physicsforums.com");[/PLAIN]
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:
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: