1

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

前もって感謝します、バート

4

1 に答える 1

1

プロキシを無効にしてみましたか?

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

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

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

ブレークポイントを追加して、デバッガーでプロキシ フィールドを検索することもできます。これにより、「実行中のサービス コンテキスト」をよりよく把握できます。

System.Diagnostics.Debugger.Break();
于 2012-08-27T16:00:20.557 に答える