2009-07-29 12 views
1

Ich entwickle gerade einen Windows-Dienst, um einige E-Mails im Hintergrund herunterzuladen. Zum einfachen Testen kann der Kern dieses Dienstes auch in einer eigenständigen Anwendung ausgeführt werden. Es gibt kein Problem beim Herunterladen der E-Mails (Dienst und Standalone), aber ich kann keine WebRequest bekommen, wenn ich den Dienst ausführe (alles findet sich in der Standalone-App). Ich weiß, Windows-Dienste werden durch das lokale Systemkonto beschränkt - aber gibt es eine Möglichkeit, mit (Http-) WebRequest zu arbeiten, ohne den Dienstbenutzer manuell zu ändern.C# -WebRequest in einem Windows-Dienst

Vielen Dank im Voraus, Bert

+2

Erhalten Sie eine Fehler/Ausnahme. Wenn ja, kannst du den Stack, die Nachricht usw. hinzufügen? –

Antwort

1

Haben Sie deaktivieren Proxy versuchen?

Ich hatte das gleiche Problem und Proxy-Einstellung auf Null die Timeouts behoben.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); 
request.Proxy = null; // bypass autodetect proxy 

Wenn Sie als eigenständige Anwendung ausgeführt werden, werden die Proxyeinstellungen Ihres Kontos verwendet. Bei Ausführung als Dienst wird das lokale Dienstkonto verwendet und die Standardproxyeinstellungen werden verwendet.

Sie können auch versuchen, einen Haltepunkt hinzuzufügen und suchen Sie das Proxy-Feld mit Ihrem Debugger. Dadurch erhalten Sie eine bessere Sicht auf den "Running Service Context"

System.Diagnostics.Debugger.Break();