私はかなり奇妙な状況にあります。
私はこの非常にシンプルなパッケージを持っています:
- タスク「getlist」は、1つの列とオブジェクト変数に実行されるURLのリストを持つアセンブリからデータテーブルを取得します。
- 「foreach」ループはオブジェクト変数をループし、URLをURL文字列変数にロードします
「実行」は、このコードでURLを呼び出します(2005年なのでImはVBで立ち往生しています):
Dim myURI As New Uri("http://" + Dts.Variables("URL").Value.ToString()) Dim myWebClient As New System.Net.WebClient myWebClient.OpenReadAsync(myURI)
呼び出されるURLは内部であり、パラメーターを読み取り、時間がかかる一連の操作を実行するだけなので、「OpenReadAsync」を使用しました。
私の問題は、実行するURLが4つある場合、パッケージはそのうちの2つだけを実行することです。ループは4回ループし、スクリプトは4回呼び出され(デバッグするかどうかを確認できます)、行myWebClient.OpenReadAsync(myURI)
は4つの異なる値で4回実行されますが、URLへの呼び出しは2回だけです。
パッケージを再度実行すると、他の2つのURLが呼び出されます。これは、URLに問題がないことを証明し、ブラウザーで4つのURLを手動で(たとえば、4つのタブで)次々に呼び出すと、それらはすべて期待される結果を生成します。これは、URLを解析するコードに問題がないことを証明します。
だから私はVBコードを残しました。ImがuriとWebClientを初めて使用したので、Imが何か間違ったことをしているのではないかと思います。また、通話の間に5秒間のスリープを追加しようとしましたが、うまくいきませんでした。
どんな助けでもいただければ幸いです。ありがとう