2011-02-28 29 views
0

yahoo financeからデータフィードを取得しようとしています。私は、次のコードでこれをやっている:IISアプリケーションプールID

System.Net.WebRequest request = System.Net.WebRequest.Create(http://download.finance.yahoo.com/download/quotes.csv?format=sl&ext=.csv&symbols=^ftse,^ftmc,^ftas,^ftt1x,^dJA); 
request.UseDefaultCredentials = true; 

// set properties of the request 
using (System.Net.WebResponse response = request.GetResponse()) 
{ 
    using (System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream())) 
    { 
     return reader.ReadToEnd(); 
    } 
} 

私は私が必要との情報を受信出力にConsole.WriteLineをを使用して、コンソールアプリケーションにこのコードを配置しています。私は 'Run as ..'コマンドを使用して、特定のドメインアカウントを使用してこれを実行しています。

このコードをページロードから使用すると、「ターゲットマシンが積極的に76.13.114.90:80を拒否したため、接続できませんでした」というエラーメッセージが表示されます。

これは、呼び出しがyahooに届いていることを示唆しているようです(これは本当ですか?)、欠落しているものがあります。

これは、コンソールアプリケーションとアプリケーションプール間の呼び出しにIDの違いがあることを示しています。

環境は以下のとおりです。Windows Server 2003では、IIS 6.0を、はい、アクティブな拒否は、ターゲットマシンが要求を受信して​​いると、ヘッダーの情報が処理正しくないか、不十分のいずれかであることの指標である4.0

答えて

1

"ターゲットマシンが積極的に拒否しました"は、TCP接続自体が成功していないことを示します。これは、IISで実行した場合のプロキシ設定が、コンソールで実行したときに適用されるプロキシ設定と同じではないためです。

リクエストでWebProxyを設定することで、環境で使用されているプロキシサーバーを指し示すことができます。

0

を.NET要求。コンソールで "run as"コマンドを使用してこの呼び出しを実行する必要がある場合は、アプリケーションプールのIDユーザーに適切なアクセス許可またはユーザー名が割り当てられていない可能性があります。アイデンティティユーザーをこの特定のドメインアカウントに変更して問題を緩和することができますが、この特定の機能を独自のアプリケーションプールに分離して、この仕様を持つWebサイトの他の部分を保護する必要があります。

関連する問題