2011-03-25 28 views
3

WindowsサービスでWebrequestを使用することができません。それは、コンソールアプリケーションである場合WindowsサービスでWebrequestが動作しない

WebRequest request = WebRequest.Create(url); 
    NetworkCredential nc = new NetworkCredential("myuname","mypassword","mydomain"); 
    request.Proxy.Credentials = nc; 

    try 
    { 

    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
    Stream dataStream = response.GetResponseStream(); 
    StreamReader reader = new StreamReader(dataStream); 
    string responseFromServer = reader.ReadToEnd(); 
    } 
    catch (WebException ex) 
    { 
    //ex.Message is "Unable to connect to the remote server" 
    } 

コードが完全に正常に動作します。「リモートサーバーに接続できません」」エラーで失敗します。修正がある場合

は、誰かが教えていただけますか?

+0

サービスを実行しているユーザーは? –

+0

は、ローカルシステムアカウントとして、および自分のアカウントで実行しようとしました。どちらも同じ問題を抱えています。私もハード私の名前とパスワードをコード化し、使用してnetworkcrednetial – paseena

+0

PS:認証を必要とするWebプロキシがあるので、私はネットの信用を使用して – paseena

答えて

5

あなたが作成したリクエストオブジェクトにproxy serverを指定してみてください。コンソールアプリケーションを実行すると、システムがあなたのためにIEの設定を検索し、プロキシが設定されていると思われます。あなた以外のアカウントでは、プロキシが設定されていない可能性があります。

+0

おかげで多くのヒント!これはまさに私の問題だった – paseena

0

私は同じ問題に直面していました。多くのR & Dの後、解決策が私のために働いた。代わりの

WebResponse responseObject = requestObject.GetResponse(); 

は私が書いた:

WebResponse responseObject = null; 
responseObject = requestObject.GetResponse(); 

、それがうまく働きました。

この現象の背後にある正確な理由も探しています。

関連する問題