WebClient.OpenReadで'System.Net.WebException'が発生して困っています。

解決


teraera  2007-03-11 23:13:30  No: 98260

YahooFinanceのデータ約4000件処理中に上記例外エラーが5,6回場所不定期で発生します。例外エラーが発生すると約2〜3分のインタバルの後リトライで続行し処理はノーマルエンドします。下記は使用しているWebClient.OpenRead用に作成したFunctionのコードです。(他の処理で約1年の実績があります)

Function GetClipWCORead(ByVal wc As WebClient, ByVal uri As String)    As String
  Dim st As Stream = Nothing
  Dim Rc As Integer = 0
  Do
     Try
        st = wc.OpenRead(uri)
        Rc = 0
     Catch ex As Exception
        If Rc < 3 Then
            Rc += 1
        Else
            Return Nothing
        End If
     End Try
  Loop While Rc > 0
  Dim enc As Encoding = Encoding.GetEncoding(51932)
  Dim sr As StreamReader = New StreamReader(st, enc)
  Dim ClipTxt As String = sr.ReadToEnd()
  sr.Close()
  Return ClipTxt
End Function


魔界の仮面弁士  2007-03-12 02:11:33  No: 98261

# 回答に非ず。

まずは、どのような WebException が発生しているのかを追跡するため、
トレースリスナを割り当て、例外発生時の Status や Message などを
Trace.WriteLine で出力するようにしておくことから始めてみては?
一時的に、サイト側に問題が発生していたのかも知れませんし。


teraera  2007-03-12 23:36:07  No: 98262

魔界の仮面弁士さん、いつもお世話になります。トレースの結果は以下の通りです。YahooFinから3986件のデータを読み込み処理を3回ランしました。
例外エラーは各5件で(計15件)「操作はタイムアウトになりました。」が13件、「リモート サーバーに接続できません。」が2件。何れも1回のRetryでセーフになっています。発生間隔はランダムです。(Keyが毎回異なる)当方側で何か回避・軽減策がないものか教えていただきたい。不足情報があればご指摘ください。


魔界の仮面弁士  2007-03-13 07:53:39  No: 98263

# 回答に非ず(再

その手のエラーであれば、やはりリトライで対応ということになるのかも。
手動で IE からブラウジングしているときにも起こりえるエラーゆえに…。


teraera  2007-03-13 17:51:56  No: 98264

魔界の仮面弁士さん、了解しました。リトライで対応します。参考になりました、有難うございます。今後ともご指導をお願いいたします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加