2009-08-23 17 views
0

私はWindowsスケジューラでvbscript .vbsを使用しています。vbscriptは空のデータを返します

サンプルコード:

objWinHttp.Open "POST", http://bla.com/blabla.asp, false 
objWinHttp.Send 
CallHTTP= objWinHttp.ResponseText 

strRESP= CallHTTP(strURL) 

WScript.Echo "after doInstallNewSite: " & strRESP 

問題:blabla.aspが完了するまでに周りに1-2分を必要とするタスクを処理しています。 タスクが完了したら、「成功」を返します。 しかし、サーバーvbsに空の結果が返されます。 (事を完了するために、通常の時間よりも短い。私は、タスクが完了したかどうかを確認するために行く、答えはあまりにもイエスである。

私は、タスクが完了するまでに長い時間を必要とするとき、この現象が発生することが判明。

これはVBSの弱点? ヘルプです!

答えて

2

あなたはWinHTTPのコンポーネントのためのタイムアウトを指定することができます。ResolveTimeout、のconnecttimeout、SendTimeout、およびReceiveTimeoutという:

objWinHttp.SetTimeouts 5000, 10000, 10000, 10000 

それは4つのパラメータを取ります。 4つはすべて必須で、ミリ秒単位で表します(1000 = 1秒)。デフォルトは次のとおり

  • ResolveTimeout:ゼロ(無タイムアウト)
  • のconnecttimeout:60,000(1分)
  • SendTimeout:(30秒)3万
  • ReceiveTimeoutという30,000(30秒)。

だから私は、ReceiveTimeoutという

+0

THAを増やすことをお勧めnbs、vbsでの返信応答が常に約30秒間であることは分かりません。あなたのソリューションは機能します。 –

0

objHTTPは、具体的?

は、ターゲットサーバのログで探しているものは、要求は、私は、サーバーログでこれを見つけることができない?

+0

設定objWinHttp = Server.CreateObjectに( "WinHttp.WinHttpRequest.5.1") – Fionnuala

0

を受信しました。

objWinHTTPは、呼び出しを送信して応答を待つための標準プロトコルです。

私は、PHPとカールを使ってプロセス全体を試みましたが失敗しました。理由:PHPはWindowsサーバーのコンポーネントの一部です。グローバル権限とファイルフォルダの移動に来ると、それはWindowsサーバーによって制御されます。だから私はあきらめて、VBを使う。

objWinHTTPはPHPのカールのようなものです。

0

私には、完了までに時間がかかりすぎてサーバーがタイムアウトしているように聞こえるような音がします。私はaspスクリプトのデフォルトのタイムアウトは90秒だと思うので、タイムアウトするまでにサーバーが長く待つように、IISまたはスクリプトでこの値を調整する必要があります。 ASPページが スクリプトを終了し、 Windowsにイベントを書き込む前に実行する スクリプトを許可することを

AspScriptTimeoutプロパティ(秒) 指定した時間のデフォルト 長さ:http://msdn.microsoft.com/en-us/library/ms525225.aspxから

イベントログ。 ASP のセッションオブジェクトの ScriptTimeoutプロパティを使用して、ASPスクリプト をオーバーライドできます。 ScriptTimeoutプロパティを使用すると、ASP アプリケーションは、より高いスクリプト タイムアウト値を設定できます。たとえば、 ログインを使用して特定のユーザーが 有効セッションを確立するか、 製品を注文すると、 タイムアウトを調整するためにこの設定を使用できます。

関連する問題