2009-07-29 11 views
1

私は現在、いくつかの電子メールをバックグラウンドでダウンロードするWindowsサービスを開発中です。簡単なテストのために、このサービスのコアはスタンドアロンアプリケーションでも実行できます。 メール(サービスとスタンドアロン)をダウンロード中に問題はありませんが、サービスを実行するとWebRequestを取得できません(スタンドアロンアプリではすべてが見つかります)。 Windowsサービスはローカルシステムアカウントによって制限されていますが、手動でサービスユーザーを変更することなく(Http-)WebRequestを使用する方法があります。事前にWindowsサービスのC#-WebRequest

おかげで、 バート

+2

エラー/例外が発生しますか。もしそうなら、スタック、メッセージなどを追加できますか? –

答えて

1

は、プロキシを無効にしてみてくださいましたか?

私は同じ問題があり、nullに設定するプロキシがタイムアウトを修正しました。

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

スタンドアロンアプリケーションとして実行すると、アカウントプロキシ設定が使用されます。 サービスとして実行されると、ローカルサービスアカウントが使用され、デフォルトのプロキシ設定が使用されます。

ブレークポイントを追加して、デバッガでプロキシフィールド を参照することもできます。これにより、「実行中のサービスコンテキスト」の詳細が表示されます

System.Diagnostics.Debugger.Break(); 
関連する問題