2012-01-13 6 views
2

私はあなたが(2000年から15000年までの)多数のURLを貼り付けることができるWebアプリケーションを持っています。そして、各ページを訪問してソースをダウンロードしますいくつかの処理を行います。大量のスレッド、最も効率的なメソッドを持つASP.NET Webアプリケーション

私はいくつかのメソッドを試しましたが、現在はajaxを使ってWebMethodに一度に1つずつURLを送信してから、ThreadPool.QueueUserWorkItemを使用してリクエストをキューにプッシュし、スレッドは同時に実行されています。これは問題を引き起こすようです(Visual StudioのWebサーバーは時折消滅してしまいます)。

anyonesが類似しているかどうかは、より良い方法が分かります。私は何とか同時スレッドの数を抑えることができると思います。

ありがとうございました

+0

カッシーニはこの種の負荷を処理するためのものではありません。あなたはそれが何のためにそれを使用する必要があります。 –

答えて

2

内蔵Webサーバーを使用しないでください。 IISを適切に使用する

+0

私はそれを変えようとしていましたが(それでも)、ウェブサーバーではなく、一人でやっている仕事の量が多いでしょうか? – JeremyBeadle

+0

私の推測では、Webサーバーです....これをチェックしてください http://www.developer.com/net/deciding-on-a-microsoft-web-server-cassini-iis-and-iis-express html IIS7.5 Expressで設定して試してみるのは比較的簡単です。 また、どのような処理をしていますか?あなたがマルチスレッドのものをやっているのであれば、おそらくあなたはデッドロックなどに陥っているでしょう。そのトピックについてどれだけ知っているのか正確に何をしているのかはわかりません。ここではリンクです。http://msdn.microsoft.com/en-us/雑誌/ cc163618.aspx – Jordan

1

上記のようにIISを使用すると、非同期Web要求を使用する利点があります。 (詳細はHow to use HttpWebRequest (.NET) asynchronously?を参照してください)

これにより、各スレッドでブロックされる量が削減され、処理が重すぎない場合に必要なスレッド数が削減されます。

関連する問題