0

Windowsスケジューラでvbscript .vbsを使用しています。

サンプルコード:

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の弱点ですか?ヘルプ!!!

4

4 に答える 4

2

winhttp コンポーネントのタイムアウトを指定できます。

objWinHttp.SetTimeouts 5000, 10000, 10000, 10000

ResolveTimeout、ConnectTimeout、SendTimeout、ReceiveTimeout の 4 つのパラメーターが必要です。4 つすべてが必要で、ミリ秒 (1000 = 1 秒) で表されます。デフォルトは次のとおりです。

  • ResolveTimeout: ゼロ (タイムアウトなし)
  • ConnectTimeout: 60,000 (1 分)
  • SendTimeout: 30,000 (30 秒)
  • ReceiveTimeout: 30,000 (30 秒)

したがって、ReceiveTimeout を増やすことをお勧めします

于 2009-08-23T15:32:14.197 に答える
0

サーバーログでこれを見つけることができません。

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

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

objWinHTTP は、PHP の curl のようなものです。

于 2009-08-23T15:04:25.540 に答える
0

へのリクエストの完了に時間がかかりすぎて、サーバーがタイムアウトしているように思えます。asp スクリプトのデフォルトのタイムアウトは 90 秒だと思いますので、サーバーがタイムアウトするまでにより長く待機するように、IIS またはスクリプトでこの値を調整する必要があるかもしれません。

http://msdn.microsoft.com/en-us/library/ms525225.aspxから:

AspScriptTimeout プロパティは、スクリプトを終了してイベントを Windows イベント ログに書き込む前に、ASP ページがスクリプトを実行できる既定の時間を秒単位で指定します。ASP スクリプトは、ASP 組み込み Session オブジェクトの ScriptTimeout プロパティを使用して、この値をオーバーライドできます。ScriptTimeout プロパティを使用すると、ASP アプリケーションでより高いスクリプト タイムアウト値を設定できます。たとえば、この設定を使用して、特定のユーザーがログインまたは製品の注文によって有効なセッションを確立したら、タイムアウトを調整できます。

于 2009-08-23T15:10:47.260 に答える
0

objHTTP とは具体的に何ですか?

対象サーバーのログを見ると、リクエストは受信されましたか?

于 2009-08-23T14:50:52.520 に答える