2011-06-22 20 views
0

試圖從basicscript(VBScript/VBA腳本語言 - SummitSoftware)創建http post到Web服務並想要實現超時。XmlHttpRequest超時 - 找不到屬性或方法

顯然XmlHttpRequest對象有一個超時屬性(http://msdn.microsoft.com/en-us/library/ms535874%28v=vs.85%29.aspx),但試圖使用它返回給我一個「找不到屬性或方法」錯誤。

如:

Dim obj As Object 
Set obj = CreateObject("MSXML2.XMLHTTP.3.0") 
obj.timeout = 123 

這也適用於Microsoft.XMLHTTP和MSXML2變種任何其他版本。

我到目前爲止唯一的想法是踢另一個運行vbscript來發出請求的進程。如果它運行的時間超過一定時間,請殺死進程。但不完全理想。

對此有任何想法,或者這可能以不同的方式實現?

編輯(可能的解決方案):

  1. WShell.Run一個VBScript到另一個進程中運行,並完成操作異步。殺死如果運行超過n。
  2. 使用HTTP/1.1 Keep-Alive標頭。寧願在客戶端上實現這一點。

回答

1

您使用的是VBA/VB6還是VBScript?在VBScript中,Dim obj As Object無效,因爲沒有靜態類型。

我想你可能正在看錯誤的對象引用。 MSXML2.XMLHTTP對象具有IXMLHTTPRequest接口,該接口定義爲here,而reference you mention用於Internet Explorer 7+支持的XmlHttpRequest對象。

+0

它實際上是BasicScript(來自Summit與VSTA的VBA兼容腳本語言 - http://www.google.com.au/search?q=summit basicscript),編輯以反映這一點。互動是通過COM,所以我認爲這是相當於本次討論的目的。感謝您的鏈接,我正在查看對象文檔,而不是界面。這更有意義。 – Kyle