dポイントプレゼントキャンペーン実施中!

MSXML2.DOMDocument を用いて、xml のデータを取得しています。
相手のサーバーがダウンしていると、

Dim xmlDoc As New MSXML2.DOMDocument
xmlDoc.async = False
xmlDoc.Load (taisyoURL)

この部分でフリーズしてしまい、それ以降続行できません。
false も返ってくるわけではないのでどうしたらよいのか
困っております。
タイムアウト又は何かしらの方法でエラー処理をさせる
ことはできますでしょうか?

A 回答 (1件)

ADODBのStreamオブジェクトで開いてみてはいかがでしょう


対象URLをHTTP://で始まる『絶対URL』で指示してみましょう

dim oStream as new ADODB.Stream
On Error Resume next
oStream.Open "絶対URL", adModeRead
On Error goto 0
if oStream.State then
  xmlDoc.async = false
  xmlDoc.Load( oStream )
  oStream.Close
End if
といった具合で ・・・
    • good
    • 0
この回答へのお礼

すばやい回答ありがとうございます。
結局とりあえず、

Dim httpObj As New MSXML2.XMLHTTP
On Error GoTo RequestError
httpObj.Open "GET", taisyoURL, False
httpObj.send
If httpObj.Status Then
Dim xmlDoc As New MSXML2.DOMDocument
xmlDoc.async = False
xmlDoc.loadXML httpObj.responseText
  …

というコードにしてみました。
ただ、サーバ落ちた状況を再現するのが手間が
かかるため、今度参照サイトが落ちた時にこれらの
テストをすることにしました。
お返事遅くなりまして申し訳ございませんでした。
先日の別件での回答を含め大変たすかりました。

お礼日時:2008/10/21 22:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!