- - PR -
WEBサービスのタイムアウトについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-04-30 14:47
WEBサービスを使ったアプリケーションを作成してます。
WEBサービスを提供しているサーバをクライアントで決定することができる ため、場合によっては存在しないIPアドレスを指定する事も考えられます。 そのため、タイムアウト値を5秒に設定して問い合わせを行おうと考えました。 ただし、存在しないIPアドレスだと5秒でなく20秒から30秒程度待たないと タイムアウトをCatchできません。 タイムアウト値で有効なのは、サーバ(IPアドレス)が存在した時だけでした。 どうすれば、サーバが存在しない時のタイムアウトを設定できますか? Dim Server_IP As String 'WEBサービスインスタンス Dim websrv As New epsrv.Service1 websrv.Timeout = 5 * 1000 'タイムアウトを5秒に設定する websrv.Url = "http://" & Server_IP & "/epsrv/Service1.asmx?" Try Dim strReceiveData As String strReceiveData = websrv.TEST() Catch ex As Exception 'TimeOut エラー処理 End Try | ||||
|
投稿日時: 2004-05-01 15:14
諸農です。
タイムアウト値の指定は出来ないのですが、 System.Net.Dnsを使うといいかもしれません。 WEBサービスではなくSocket接続と、Dnsクラスの名前解決とを比較してみたところ、 前者のSocket.Connect()が20〜30秒前後でエラーになるのに対し、 後者のDnsであれば10秒以内でエラーになりました。 #繰り返せば4〜5秒でエラーになりますが。。意味無いですね(^^;
_________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2004-05-06 08:39
脱線:
別所での話題になりますが、こういうときにsetjmp, longjmpと、SIGALRMを使います。 Windows環境では、どうしましょうねぇ。。。タイマーで割り込み(イベント)を発生させることはできますね。スレッドにして、スレッドを強制終了とか??? | ||||
|
投稿日時: 2004-05-08 00:33
JubeiさんJittaさん
ありがとうございます。 Jubeiさんの実装は簡単に実現できそうですが、タイムアウト値の指定ができないのは残念です。 Jittaさんの実装は難しそうですね。。C言語ですか。。 |
1